* aclocal.m4: Don't add wcwidth.o if we don't have wchar.h.
[deliverable/binutils-gdb.git] / readline / aclocal.m4
CommitLineData
d60d9f65
SS
1dnl
2dnl Bash specific tests
3dnl
4dnl Some derived from PDKSH 5.1.3 autoconf tests
5dnl
9255ee31
EZ
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
d60d9f65
SS
14main()
15{
9255ee31
EZ
16long long foo = 0;
17exit(sizeof(long long) < sizeof(long));
d60d9f65 18}
9255ee31
EZ
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.])
d60d9f65
SS
23fi
24])
25
9255ee31
EZ
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
d60d9f65
SS
37main()
38{
9255ee31
EZ
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));
d60d9f65 46}
9255ee31
EZ
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.])
d60d9f65
SS
51fi
52])
53
9255ee31
EZ
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
d60d9f65
SS
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,
9255ee31
EZ
70[
71AC_REQUIRE([AC_HEADER_STDC])dnl
72AC_REQUIRE([BASH_HEADER_INTTYPES])
d60d9f65
SS
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>
9255ee31
EZ
78#include <stddef.h>
79#endif
80#if HAVE_INTTYPES_H
81#include <inttypes.h>
d60d9f65
SS
82#endif
83$2
84], bash_cv_type_$1=yes, bash_cv_type_$1=no)])
85AC_MSG_RESULT($bash_cv_type_$1)
86ifelse($#, 4, [if test $bash_cv_type_$1 = yes; then
87 AC_DEFINE($4)
88 fi])
89if test $bash_cv_type_$1 = no; then
9255ee31 90 AC_DEFINE_UNQUOTED($1, $3)
d60d9f65
SS
91fi
92])
93
94dnl
9255ee31 95dnl BASH_CHECK_DECL(FUNC)
d60d9f65 96dnl
9255ee31
EZ
97dnl Check for a declaration of FUNC in stdlib.h and inttypes.h like
98dnl AC_CHECK_DECL
99dnl
100AC_DEFUN(BASH_CHECK_DECL,
101[
102AC_REQUIRE([AC_HEADER_STDC])
103AC_REQUIRE([BASH_HEADER_INTTYPES])
104AC_CACHE_CHECK([for declaration of $1], bash_cv_decl_$1,
105[AC_TRY_LINK(
106[
107#if STDC_HEADERS
108# include <stdlib.h>
109#endif
110#if HAVE_INTTYPES_H
111# include <inttypes.h>
112#endif
113],
114[return !$1;],
115bash_cv_decl_$1=yes, bash_cv_decl_$1=no)])
116bash_tr_func=HAVE_DECL_`echo $1 | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
117if test $bash_cv_decl_$1 = yes; then
118 AC_DEFINE_UNQUOTED($bash_tr_func, 1)
119else
120 AC_DEFINE_UNQUOTED($bash_tr_func, 0)
121fi
122])
123
124AC_DEFUN(BASH_DECL_PRINTF,
125[AC_MSG_CHECKING(for declaration of printf in <stdio.h>)
126AC_CACHE_VAL(bash_cv_printf_declared,
127[AC_TRY_RUN([
128#include <stdio.h>
129#ifdef __STDC__
130typedef int (*_bashfunc)(const char *, ...);
131#else
132typedef int (*_bashfunc)();
133#endif
d60d9f65
SS
134main()
135{
9255ee31
EZ
136_bashfunc pf;
137pf = (_bashfunc) printf;
138exit(pf == 0);
139}
140], bash_cv_printf_declared=yes, bash_cv_printf_declared=no,
141 [AC_MSG_WARN(cannot check printf declaration if cross compiling -- defaulting to yes)
142 bash_cv_printf_declared=yes]
143)])
144AC_MSG_RESULT($bash_cv_printf_declared)
145if test $bash_cv_printf_declared = yes; then
146AC_DEFINE(PRINTF_DECLARED)
147fi
d60d9f65 148])
9255ee31
EZ
149
150AC_DEFUN(BASH_DECL_SBRK,
151[AC_MSG_CHECKING(for declaration of sbrk in <unistd.h>)
152AC_CACHE_VAL(bash_cv_sbrk_declared,
153[AC_EGREP_HEADER(sbrk, unistd.h,
154 bash_cv_sbrk_declared=yes, bash_cv_sbrk_declared=no)])
155AC_MSG_RESULT($bash_cv_sbrk_declared)
156if test $bash_cv_sbrk_declared = yes; then
157AC_DEFINE(SBRK_DECLARED)
d60d9f65
SS
158fi
159])
160
161dnl
162dnl Check for sys_siglist[] or _sys_siglist[]
163dnl
164AC_DEFUN(BASH_DECL_UNDER_SYS_SIGLIST,
165[AC_MSG_CHECKING([for _sys_siglist in signal.h or unistd.h])
166AC_CACHE_VAL(bash_cv_decl_under_sys_siglist,
167[AC_TRY_COMPILE([
168#include <sys/types.h>
169#include <signal.h>
170#ifdef HAVE_UNISTD_H
171#include <unistd.h>
172#endif], [ char *msg = _sys_siglist[2]; ],
173 bash_cv_decl_under_sys_siglist=yes, bash_cv_decl_under_sys_siglist=no,
c862e87b 174 [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)])])dnl
d60d9f65
SS
175AC_MSG_RESULT($bash_cv_decl_under_sys_siglist)
176if test $bash_cv_decl_under_sys_siglist = yes; then
177AC_DEFINE(UNDER_SYS_SIGLIST_DECLARED)
178fi
179])
180
181AC_DEFUN(BASH_UNDER_SYS_SIGLIST,
182[AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
183AC_MSG_CHECKING([for _sys_siglist in system C library])
184AC_CACHE_VAL(bash_cv_under_sys_siglist,
185[AC_TRY_RUN([
186#include <sys/types.h>
187#include <signal.h>
188#ifdef HAVE_UNISTD_H
189#include <unistd.h>
190#endif
191#ifndef UNDER_SYS_SIGLIST_DECLARED
192extern char *_sys_siglist[];
193#endif
194main()
195{
196char *msg = (char *)_sys_siglist[2];
197exit(msg == 0);
198}],
199 bash_cv_under_sys_siglist=yes, bash_cv_under_sys_siglist=no,
c862e87b 200 [AC_MSG_WARN(cannot check for _sys_siglist[] if cross compiling -- defaulting to no)
d60d9f65
SS
201 bash_cv_under_sys_siglist=no])])
202AC_MSG_RESULT($bash_cv_under_sys_siglist)
203if test $bash_cv_under_sys_siglist = yes; then
204AC_DEFINE(HAVE_UNDER_SYS_SIGLIST)
205fi
206])
207
208AC_DEFUN(BASH_SYS_SIGLIST,
209[AC_REQUIRE([AC_DECL_SYS_SIGLIST])
210AC_MSG_CHECKING([for sys_siglist in system C library])
211AC_CACHE_VAL(bash_cv_sys_siglist,
212[AC_TRY_RUN([
213#include <sys/types.h>
214#include <signal.h>
215#ifdef HAVE_UNISTD_H
216#include <unistd.h>
217#endif
218#ifndef SYS_SIGLIST_DECLARED
219extern char *sys_siglist[];
220#endif
221main()
222{
223char *msg = sys_siglist[2];
224exit(msg == 0);
225}],
226 bash_cv_sys_siglist=yes, bash_cv_sys_siglist=no,
c862e87b 227 [AC_MSG_WARN(cannot check for sys_siglist if cross compiling -- defaulting to no)
d60d9f65
SS
228 bash_cv_sys_siglist=no])])
229AC_MSG_RESULT($bash_cv_sys_siglist)
230if test $bash_cv_sys_siglist = yes; then
231AC_DEFINE(HAVE_SYS_SIGLIST)
232fi
233])
234
9255ee31
EZ
235dnl Check for the various permutations of sys_siglist and make sure we
236dnl compile in siglist.o if they're not defined
237AC_DEFUN(BASH_CHECK_SYS_SIGLIST, [
238AC_REQUIRE([BASH_SYS_SIGLIST])
239AC_REQUIRE([BASH_DECL_UNDER_SYS_SIGLIST])
240AC_REQUIRE([BASH_FUNC_STRSIGNAL])
241if test "$bash_cv_sys_siglist" = no && test "$bash_cv_under_sys_siglist" = no && test "$bash_cv_have_strsignal" = no; then
242 SIGLIST_O=siglist.o
243else
244 SIGLIST_O=
245fi
246AC_SUBST([SIGLIST_O])
247])
248
d60d9f65
SS
249dnl Check for sys_errlist[] and sys_nerr, check for declaration
250AC_DEFUN(BASH_SYS_ERRLIST,
251[AC_MSG_CHECKING([for sys_errlist and sys_nerr])
252AC_CACHE_VAL(bash_cv_sys_errlist,
253[AC_TRY_LINK([#include <errno.h>],
254[extern char *sys_errlist[];
255 extern int sys_nerr;
256 char *msg = sys_errlist[sys_nerr - 1];],
257 bash_cv_sys_errlist=yes, bash_cv_sys_errlist=no)])dnl
258AC_MSG_RESULT($bash_cv_sys_errlist)
259if test $bash_cv_sys_errlist = yes; then
260AC_DEFINE(HAVE_SYS_ERRLIST)
261fi
262])
263
9255ee31
EZ
264dnl
265dnl Check if dup2() does not clear the close on exec flag
266dnl
267AC_DEFUN(BASH_FUNC_DUP2_CLOEXEC_CHECK,
268[AC_MSG_CHECKING(if dup2 fails to clear the close-on-exec flag)
269AC_CACHE_VAL(bash_cv_dup2_broken,
270[AC_TRY_RUN([
271#include <sys/types.h>
272#include <fcntl.h>
273main()
274{
275 int fd1, fd2, fl;
276 fd1 = open("/dev/null", 2);
277 if (fcntl(fd1, 2, 1) < 0)
278 exit(1);
279 fd2 = dup2(fd1, 1);
280 if (fd2 < 0)
281 exit(2);
282 fl = fcntl(fd2, 1, 0);
283 /* fl will be 1 if dup2 did not reset the close-on-exec flag. */
284 exit(fl != 1);
285}
286], bash_cv_dup2_broken=yes, bash_cv_dup2_broken=no,
287 [AC_MSG_WARN(cannot check dup2 if cross compiling -- defaulting to no)
288 bash_cv_dup2_broken=no])
289])
290AC_MSG_RESULT($bash_cv_dup2_broken)
291if test $bash_cv_dup2_broken = yes; then
292AC_DEFINE(DUP2_BROKEN)
293fi
294])
295
296AC_DEFUN(BASH_FUNC_STRSIGNAL,
297[AC_MSG_CHECKING([for the existence of strsignal])
298AC_CACHE_VAL(bash_cv_have_strsignal,
299[AC_TRY_LINK([#include <sys/types.h>
300#include <signal.h>],
301[char *s = (char *)strsignal(2);],
302 bash_cv_have_strsignal=yes, bash_cv_have_strsignal=no)])
303AC_MSG_RESULT($bash_cv_have_strsignal)
304if test $bash_cv_have_strsignal = yes; then
305AC_DEFINE(HAVE_STRSIGNAL)
306fi
307])
308
d60d9f65
SS
309dnl Check to see if opendir will open non-directories (not a nice thing)
310AC_DEFUN(BASH_FUNC_OPENDIR_CHECK,
311[AC_REQUIRE([AC_HEADER_DIRENT])dnl
312AC_MSG_CHECKING(if opendir() opens non-directories)
313AC_CACHE_VAL(bash_cv_opendir_not_robust,
314[AC_TRY_RUN([
315#include <stdio.h>
316#include <sys/types.h>
317#include <fcntl.h>
318#ifdef HAVE_UNISTD_H
319# include <unistd.h>
320#endif /* HAVE_UNISTD_H */
321#if defined(HAVE_DIRENT_H)
322# include <dirent.h>
323#else
324# define dirent direct
325# ifdef HAVE_SYS_NDIR_H
326# include <sys/ndir.h>
327# endif /* SYSNDIR */
328# ifdef HAVE_SYS_DIR_H
329# include <sys/dir.h>
330# endif /* SYSDIR */
331# ifdef HAVE_NDIR_H
332# include <ndir.h>
333# endif
334#endif /* HAVE_DIRENT_H */
335main()
336{
337DIR *dir;
1b17e766
EZ
338int fd, err;
339err = mkdir("/tmp/bash-aclocal", 0700);
340if (err < 0) {
341 perror("mkdir");
342 exit(1);
343}
344unlink("/tmp/bash-aclocal/not_a_directory");
345fd = open("/tmp/bash-aclocal/not_a_directory", O_WRONLY|O_CREAT|O_EXCL, 0666);
d60d9f65
SS
346write(fd, "\n", 1);
347close(fd);
1b17e766
EZ
348dir = opendir("/tmp/bash-aclocal/not_a_directory");
349unlink("/tmp/bash-aclocal/not_a_directory");
350rmdir("/tmp/bash-aclocal");
d60d9f65
SS
351exit (dir == 0);
352}], bash_cv_opendir_not_robust=yes,bash_cv_opendir_not_robust=no,
c862e87b 353 [AC_MSG_WARN(cannot check opendir if cross compiling -- defaulting to no)
d60d9f65
SS
354 bash_cv_opendir_not_robust=no]
355)])
356AC_MSG_RESULT($bash_cv_opendir_not_robust)
357if test $bash_cv_opendir_not_robust = yes; then
358AC_DEFINE(OPENDIR_NOT_ROBUST)
359fi
360])
361
362dnl
363AC_DEFUN(BASH_TYPE_SIGHANDLER,
364[AC_MSG_CHECKING([whether signal handlers are of type void])
365AC_CACHE_VAL(bash_cv_void_sighandler,
366[AC_TRY_COMPILE([#include <sys/types.h>
367#include <signal.h>
368#ifdef signal
369#undef signal
370#endif
371#ifdef __cplusplus
372extern "C"
373#endif
374void (*signal ()) ();],
375[int i;], bash_cv_void_sighandler=yes, bash_cv_void_sighandler=no)])dnl
376AC_MSG_RESULT($bash_cv_void_sighandler)
377if test $bash_cv_void_sighandler = yes; then
378AC_DEFINE(VOID_SIGHANDLER)
379fi
380])
381
1b17e766
EZ
382dnl
383dnl A signed 16-bit integer quantity
384dnl
385AC_DEFUN(BASH_TYPE_BITS16_T,
386[
387if test "$ac_cv_sizeof_short" = 2; then
388 AC_CHECK_TYPE(bits16_t, short)
389elif test "$ac_cv_sizeof_char" = 2; then
390 AC_CHECK_TYPE(bits16_t, char)
391else
392 AC_CHECK_TYPE(bits16_t, short)
393fi
394])
395
396dnl
397dnl An unsigned 16-bit integer quantity
398dnl
399AC_DEFUN(BASH_TYPE_U_BITS16_T,
400[
401if test "$ac_cv_sizeof_short" = 2; then
402 AC_CHECK_TYPE(u_bits16_t, unsigned short)
403elif test "$ac_cv_sizeof_char" = 2; then
404 AC_CHECK_TYPE(u_bits16_t, unsigned char)
405else
406 AC_CHECK_TYPE(u_bits16_t, unsigned short)
407fi
408])
409
410dnl
411dnl A signed 32-bit integer quantity
412dnl
413AC_DEFUN(BASH_TYPE_BITS32_T,
d60d9f65 414[
c862e87b 415if test "$ac_cv_sizeof_int" = 4; then
1b17e766 416 AC_CHECK_TYPE(bits32_t, int)
c862e87b 417elif test "$ac_cv_sizeof_long" = 4; then
1b17e766 418 AC_CHECK_TYPE(bits32_t, long)
d60d9f65 419else
1b17e766 420 AC_CHECK_TYPE(bits32_t, int)
d60d9f65
SS
421fi
422])
423
1b17e766
EZ
424dnl
425dnl An unsigned 32-bit integer quantity
426dnl
427AC_DEFUN(BASH_TYPE_U_BITS32_T,
d60d9f65 428[
c862e87b 429if test "$ac_cv_sizeof_int" = 4; then
1b17e766 430 AC_CHECK_TYPE(u_bits32_t, unsigned int)
c862e87b 431elif test "$ac_cv_sizeof_long" = 4; then
1b17e766 432 AC_CHECK_TYPE(u_bits32_t, unsigned long)
d60d9f65 433else
1b17e766 434 AC_CHECK_TYPE(u_bits32_t, unsigned int)
d60d9f65
SS
435fi
436])
437
438AC_DEFUN(BASH_TYPE_PTRDIFF_T,
439[
c862e87b
JM
440if test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_char_p"; then
441 AC_CHECK_TYPE(ptrdiff_t, int)
442elif test "$ac_cv_sizeof_long" = "$ac_cv_sizeof_char_p"; then
443 AC_CHECK_TYPE(ptrdiff_t, long)
9255ee31
EZ
444elif test "$ac_cv_type_long_long" = yes && test "$ac_cv_sizeof_long_long" = "$ac_cv_sizeof_char_p"; then
445 AC_CHECK_TYPE(ptrdiff_t, [long long])
d60d9f65 446else
c862e87b 447 AC_CHECK_TYPE(ptrdiff_t, int)
d60d9f65 448fi
c862e87b
JM
449])
450
1b17e766
EZ
451dnl
452dnl A signed 64-bit quantity
453dnl
c862e87b
JM
454AC_DEFUN(BASH_TYPE_BITS64_T,
455[
9255ee31 456if test "$ac_cv_sizeof_char_p" = 8; then
c862e87b
JM
457 AC_CHECK_TYPE(bits64_t, char *)
458elif test "$ac_cv_sizeof_double" = 8; then
459 AC_CHECK_TYPE(bits64_t, double)
9255ee31
EZ
460elif test -n "$ac_cv_type_long_long" && test "$ac_cv_sizeof_long_long" = 8; then
461 AC_CHECK_TYPE(bits64_t, [long long])
c862e87b
JM
462elif test "$ac_cv_sizeof_long" = 8; then
463 AC_CHECK_TYPE(bits64_t, long)
d60d9f65 464else
c862e87b 465 AC_CHECK_TYPE(bits64_t, double)
d60d9f65
SS
466fi
467])
468
9255ee31
EZ
469AC_DEFUN(BASH_TYPE_LONG_LONG,
470[
471AC_CACHE_CHECK([for long long], bash_cv_type_long_long,
472[AC_TRY_LINK([
473long long ll = 1; int i = 63;],
474[
475long long llm = (long long) -1;
476return ll << i | ll >> i | llm / ll | llm % ll;
477], bash_cv_type_long_long='long long', bash_cv_type_long_long='long')])
478if test "$bash_cv_type_long_long" = 'long long'; then
479 AC_DEFINE(HAVE_LONG_LONG, 1)
480fi
481])
482
483AC_DEFUN(BASH_TYPE_UNSIGNED_LONG_LONG,
484[
485AC_CACHE_CHECK([for unsigned long long], bash_cv_type_unsigned_long_long,
486[AC_TRY_LINK([
487unsigned long long ull = 1; int i = 63;],
488[
489unsigned long long ullmax = (unsigned long long) -1;
490return ull << i | ull >> i | ullmax / ull | ullmax % ull;
491], bash_cv_type_unsigned_long_long='unsigned long long',
492 bash_cv_type_unsigned_long_long='unsigned long')])
493if test "$bash_cv_type_unsigned_long_long" = 'unsigned long long'; then
494 AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1)
495fi
496])
497
498dnl
499dnl Type of struct rlimit fields: some systems (OSF/1, NetBSD, RISC/os 5.0)
500dnl have a rlim_t, others (4.4BSD based systems) use quad_t, others use
501dnl long and still others use int (HP-UX 9.01, SunOS 4.1.3). To simplify
502dnl matters, this just checks for rlim_t, quad_t, or long.
503dnl
504AC_DEFUN(BASH_TYPE_RLIMIT,
505[AC_MSG_CHECKING(for size and type of struct rlimit fields)
506AC_CACHE_VAL(bash_cv_type_rlimit,
507[AC_TRY_COMPILE([#include <sys/types.h>
508#include <sys/resource.h>],
509[rlim_t xxx;], bash_cv_type_rlimit=rlim_t,[
510AC_TRY_RUN([
511#include <sys/types.h>
512#include <sys/time.h>
513#include <sys/resource.h>
514main()
515{
516#ifdef HAVE_QUAD_T
517 struct rlimit rl;
518 if (sizeof(rl.rlim_cur) == sizeof(quad_t))
519 exit(0);
520#endif
521 exit(1);
522}], bash_cv_type_rlimit=quad_t, bash_cv_type_rlimit=long,
523 [AC_MSG_WARN(cannot check quad_t if cross compiling -- defaulting to long)
524 bash_cv_type_rlimit=long])])
525])
526AC_MSG_RESULT($bash_cv_type_rlimit)
527if test $bash_cv_type_rlimit = quad_t; then
528AC_DEFINE(RLIMTYPE, quad_t)
529elif test $bash_cv_type_rlimit = rlim_t; then
530AC_DEFINE(RLIMTYPE, rlim_t)
d60d9f65
SS
531fi
532])
533
534AC_DEFUN(BASH_FUNC_LSTAT,
535[dnl Cannot use AC_CHECK_FUNCS(lstat) because Linux defines lstat() as an
536dnl inline function in <sys/stat.h>.
537AC_CACHE_CHECK([for lstat], bash_cv_func_lstat,
538[AC_TRY_LINK([
539#include <sys/types.h>
540#include <sys/stat.h>
541],[ lstat(".",(struct stat *)0); ],
542bash_cv_func_lstat=yes, bash_cv_func_lstat=no)])
543if test $bash_cv_func_lstat = yes; then
544 AC_DEFINE(HAVE_LSTAT)
545fi
546])
547
1b17e766
EZ
548AC_DEFUN(BASH_FUNC_INET_ATON,
549[
550AC_CACHE_CHECK([for inet_aton], bash_cv_func_inet_aton,
551[AC_TRY_LINK([
552#include <sys/types.h>
553#include <netinet/in.h>
554#include <arpa/inet.h>
555struct in_addr ap;], [ inet_aton("127.0.0.1", &ap); ],
556bash_cv_func_inet_aton=yes, bash_cv_func_inet_aton=no)])
557if test $bash_cv_func_inet_aton = yes; then
558 AC_DEFINE(HAVE_INET_ATON)
9255ee31
EZ
559else
560 AC_LIBOBJ(inet_aton)
d60d9f65
SS
561fi
562])
563
564AC_DEFUN(BASH_FUNC_GETENV,
565[AC_MSG_CHECKING(to see if getenv can be redefined)
566AC_CACHE_VAL(bash_cv_getenv_redef,
567[AC_TRY_RUN([
568#ifdef HAVE_UNISTD_H
569# include <unistd.h>
570#endif
571#ifndef __STDC__
572# ifndef const
573# define const
574# endif
575#endif
576char *
577getenv (name)
578#if defined (__linux__) || defined (__bsdi__) || defined (convex)
579 const char *name;
580#else
581 char const *name;
582#endif /* !__linux__ && !__bsdi__ && !convex */
583{
584return "42";
585}
586main()
587{
588char *s;
589/* The next allows this program to run, but does not allow bash to link
590 when it redefines getenv. I'm not really interested in figuring out
591 why not. */
592#if defined (NeXT)
593exit(1);
594#endif
595s = getenv("ABCDE");
596exit(s == 0); /* force optimizer to leave getenv in */
597}
598], bash_cv_getenv_redef=yes, bash_cv_getenv_redef=no,
c862e87b 599 [AC_MSG_WARN(cannot check getenv redefinition if cross compiling -- defaulting to yes)
d60d9f65
SS
600 bash_cv_getenv_redef=yes]
601)])
602AC_MSG_RESULT($bash_cv_getenv_redef)
603if test $bash_cv_getenv_redef = yes; then
604AC_DEFINE(CAN_REDEFINE_GETENV)
605fi
606])
607
9255ee31
EZ
608# We should check for putenv before calling this
609AC_DEFUN(BASH_FUNC_STD_PUTENV,
610[
611AC_REQUIRE([AC_HEADER_STDC])
612AC_REQUIRE([AC_C_PROTOTYPES])
613AC_CACHE_CHECK([for standard-conformant putenv declaration], bash_cv_std_putenv,
614[AC_TRY_LINK([
615#if STDC_HEADERS
616#include <stdlib.h>
617#include <stddef.h>
618#endif
619#ifndef __STDC__
620# ifndef const
621# define const
622# endif
623#endif
624#ifdef PROTOTYPES
625extern int putenv (char *);
d60d9f65 626#else
9255ee31 627extern int putenv ();
d60d9f65 628#endif
9255ee31
EZ
629],
630[return (putenv == 0);],
631bash_cv_std_putenv=yes, bash_cv_std_putenv=no
d60d9f65 632)])
9255ee31
EZ
633if test $bash_cv_std_putenv = yes; then
634AC_DEFINE(HAVE_STD_PUTENV)
635fi
636])
637
638# We should check for unsetenv before calling this
639AC_DEFUN(BASH_FUNC_STD_UNSETENV,
640[
641AC_REQUIRE([AC_HEADER_STDC])
642AC_REQUIRE([AC_C_PROTOTYPES])
643AC_CACHE_CHECK([for standard-conformant unsetenv declaration], bash_cv_std_unsetenv,
644[AC_TRY_LINK([
645#if STDC_HEADERS
646#include <stdlib.h>
647#include <stddef.h>
648#endif
649#ifndef __STDC__
650# ifndef const
651# define const
652# endif
653#endif
654#ifdef PROTOTYPES
655extern int unsetenv (const char *);
656#else
657extern int unsetenv ();
658#endif
659],
660[return (unsetenv == 0);],
661bash_cv_std_unsetenv=yes, bash_cv_std_unsetenv=no
662)])
663if test $bash_cv_std_unsetenv = yes; then
664AC_DEFINE(HAVE_STD_UNSETENV)
d60d9f65
SS
665fi
666])
667
668AC_DEFUN(BASH_FUNC_ULIMIT_MAXFDS,
669[AC_MSG_CHECKING(whether ulimit can substitute for getdtablesize)
670AC_CACHE_VAL(bash_cv_ulimit_maxfds,
671[AC_TRY_RUN([
672main()
673{
674long maxfds = ulimit(4, 0L);
675exit (maxfds == -1L);
676}
677], bash_cv_ulimit_maxfds=yes, bash_cv_ulimit_maxfds=no,
c862e87b 678 [AC_MSG_WARN(cannot check ulimit if cross compiling -- defaulting to no)
d60d9f65
SS
679 bash_cv_ulimit_maxfds=no]
680)])
681AC_MSG_RESULT($bash_cv_ulimit_maxfds)
682if test $bash_cv_ulimit_maxfds = yes; then
683AC_DEFINE(ULIMIT_MAXFDS)
684fi
685])
686
d60d9f65
SS
687AC_DEFUN(BASH_FUNC_GETCWD,
688[AC_MSG_CHECKING([if getcwd() calls popen()])
689AC_CACHE_VAL(bash_cv_getcwd_calls_popen,
690[AC_TRY_RUN([
691#include <stdio.h>
692#ifdef HAVE_UNISTD_H
693#include <unistd.h>
694#endif
695
696#ifndef __STDC__
697#ifndef const
698#define const
699#endif
700#endif
701
702int popen_called;
703
704FILE *
705popen(command, type)
706 const char *command;
707 const char *type;
708{
709 popen_called = 1;
710 return (FILE *)NULL;
711}
712
713FILE *_popen(command, type)
714 const char *command;
715 const char *type;
716{
717 return (popen (command, type));
718}
719
720int
721pclose(stream)
722FILE *stream;
723{
724 return 0;
725}
726
727int
728_pclose(stream)
729FILE *stream;
730{
731 return 0;
732}
733
734main()
735{
736 char lbuf[32];
737 popen_called = 0;
738 getcwd(lbuf, 32);
739 exit (popen_called);
740}
741], bash_cv_getcwd_calls_popen=no, bash_cv_getcwd_calls_popen=yes,
c862e87b 742 [AC_MSG_WARN(cannot check whether getcwd calls popen if cross compiling -- defaulting to no)
d60d9f65
SS
743 bash_cv_getcwd_calls_popen=no]
744)])
745AC_MSG_RESULT($bash_cv_getcwd_calls_popen)
746if test $bash_cv_getcwd_calls_popen = yes; then
747AC_DEFINE(GETCWD_BROKEN)
9255ee31 748AC_LIBOBJ(getcwd)
d60d9f65
SS
749fi
750])
751
9255ee31
EZ
752dnl
753dnl This needs BASH_CHECK_SOCKLIB, but since that's not called on every
754dnl system, we can't use AC_PREREQ
755dnl
756AC_DEFUN(BASH_FUNC_GETHOSTBYNAME,
757[if test "X$bash_cv_have_gethostbyname" = "X"; then
758_bash_needmsg=yes
759else
760AC_MSG_CHECKING(for gethostbyname in socket library)
761_bash_needmsg=
762fi
763AC_CACHE_VAL(bash_cv_have_gethostbyname,
764[AC_TRY_LINK([#include <netdb.h>],
765[ struct hostent *hp;
766 hp = gethostbyname("localhost");
767], bash_cv_have_gethostbyname=yes, bash_cv_have_gethostbyname=no)]
768)
769if test "X$_bash_needmsg" = Xyes; then
770 AC_MSG_CHECKING(for gethostbyname in socket library)
771fi
772AC_MSG_RESULT($bash_cv_have_gethostbyname)
773if test "$bash_cv_have_gethostbyname" = yes; then
774AC_DEFINE(HAVE_GETHOSTBYNAME)
d60d9f65
SS
775fi
776])
777
9255ee31
EZ
778AC_DEFUN(BASH_FUNC_FNMATCH_EXTMATCH,
779[AC_MSG_CHECKING(if fnmatch does extended pattern matching with FNM_EXTMATCH)
780AC_CACHE_VAL(bash_cv_fnm_extmatch,
781[AC_TRY_RUN([
782#include <fnmatch.h>
783
784main()
785{
786#ifdef FNM_EXTMATCH
787 exit (0);
d60d9f65 788#else
9255ee31
EZ
789 exit (1);
790#endif
791}
792], bash_cv_fnm_extmatch=yes, bash_cv_fnm_extmatch=no,
793 [AC_MSG_WARN(cannot check FNM_EXTMATCH if cross compiling -- defaulting to no)
794 bash_cv_fnm_extmatch=no])
795])
796AC_MSG_RESULT($bash_cv_fnm_extmatch)
797if test $bash_cv_fnm_extmatch = yes; then
798AC_DEFINE(HAVE_LIBC_FNM_EXTMATCH)
d60d9f65
SS
799fi
800])
801
9255ee31
EZ
802AC_DEFUN(BASH_FUNC_POSIX_SETJMP,
803[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
804AC_MSG_CHECKING(for presence of POSIX-style sigsetjmp/siglongjmp)
805AC_CACHE_VAL(bash_cv_func_sigsetjmp,
d60d9f65 806[AC_TRY_RUN([
d60d9f65
SS
807#ifdef HAVE_UNISTD_H
808#include <unistd.h>
809#endif
9255ee31
EZ
810#include <sys/types.h>
811#include <signal.h>
812#include <setjmp.h>
d60d9f65 813
9255ee31
EZ
814main()
815{
816#if !defined (_POSIX_VERSION) || !defined (HAVE_POSIX_SIGNALS)
817exit (1);
818#else
d60d9f65 819
9255ee31
EZ
820int code;
821sigset_t set, oset;
822sigjmp_buf xx;
d60d9f65 823
9255ee31
EZ
824/* get the mask */
825sigemptyset(&set);
826sigemptyset(&oset);
827sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &set);
828sigprocmask(SIG_BLOCK, (sigset_t *)NULL, &oset);
829
830/* save it */
831code = sigsetjmp(xx, 1);
832if (code)
833 exit(0); /* could get sigmask and compare to oset here. */
834
835/* change it */
836sigaddset(&set, SIGINT);
837sigprocmask(SIG_BLOCK, &set, (sigset_t *)NULL);
838
839/* and siglongjmp */
840siglongjmp(xx, 10);
841exit(1);
842#endif
843}], bash_cv_func_sigsetjmp=present, bash_cv_func_sigsetjmp=missing,
844 [AC_MSG_WARN(cannot check for sigsetjmp/siglongjmp if cross-compiling -- defaulting to missing)
845 bash_cv_func_sigsetjmp=missing]
846)])
847AC_MSG_RESULT($bash_cv_func_sigsetjmp)
848if test $bash_cv_func_sigsetjmp = present; then
849AC_DEFINE(HAVE_POSIX_SIGSETJMP)
850fi
851])
852
853AC_DEFUN(BASH_FUNC_STRCOLL,
854[
855AC_MSG_CHECKING(whether or not strcoll and strcmp differ)
856AC_CACHE_VAL(bash_cv_func_strcoll_broken,
857[AC_TRY_RUN([
858#include <stdio.h>
859#if defined (HAVE_LOCALE_H)
860#include <locale.h>
861#endif
862
863main(c, v)
864int c;
865char *v[];
866{
867 int r1, r2;
868 char *deflocale, *defcoll;
869
870#ifdef HAVE_SETLOCALE
871 deflocale = setlocale(LC_ALL, "");
872 defcoll = setlocale(LC_COLLATE, "");
873#endif
874
875#ifdef HAVE_STRCOLL
876 /* These two values are taken from tests/glob-test. */
877 r1 = strcoll("abd", "aXd");
878#else
879 r1 = 0;
880#endif
881 r2 = strcmp("abd", "aXd");
882
883 /* These two should both be greater than 0. It is permissible for
884 a system to return different values, as long as the sign is the
885 same. */
886
887 /* Exit with 1 (failure) if these two values are both > 0, since
888 this tests whether strcoll(3) is broken with respect to strcmp(3)
889 in the default locale. */
890 exit (r1 > 0 && r2 > 0);
891}
892], bash_cv_func_strcoll_broken=yes, bash_cv_func_strcoll_broken=no,
893 [AC_MSG_WARN(cannot check strcoll if cross compiling -- defaulting to no)
894 bash_cv_func_strcoll_broken=no]
895)])
896AC_MSG_RESULT($bash_cv_func_strcoll_broken)
897if test $bash_cv_func_strcoll_broken = yes; then
898AC_DEFINE(STRCOLL_BROKEN)
899fi
900])
901
902AC_DEFUN(BASH_FUNC_PRINTF_A_FORMAT,
903[AC_MSG_CHECKING([for printf floating point output in hex notation])
904AC_CACHE_VAL(bash_cv_printf_a_format,
905[AC_TRY_RUN([
906#include <stdio.h>
907#include <string.h>
908
909int
910main()
911{
912 double y = 0.0;
913 char abuf[1024];
914
915 sprintf(abuf, "%A", y);
916 exit(strchr(abuf, 'P') == (char *)0);
917}
918], bash_cv_printf_a_format=yes, bash_cv_printf_a_format=no,
919 [AC_MSG_WARN(cannot check printf if cross compiling -- defaulting to no)
920 bash_cv_printf_a_format=no]
921)])
922AC_MSG_RESULT($bash_cv_printf_a_format)
923if test $bash_cv_printf_a_format = yes; then
924AC_DEFINE(HAVE_PRINTF_A_FORMAT)
925fi
926])
927
928AC_DEFUN(BASH_STRUCT_TERMIOS_LDISC,
929[
930AC_CHECK_MEMBER(struct termios.c_line, AC_DEFINE(TERMIOS_LDISC), ,[
931#include <sys/types.h>
932#include <termios.h>
933])
934])
935
936AC_DEFUN(BASH_STRUCT_TERMIO_LDISC,
937[
938AC_CHECK_MEMBER(struct termio.c_line, AC_DEFINE(TERMIO_LDISC), ,[
939#include <sys/types.h>
940#include <termio.h>
941])
942])
943
944dnl
945dnl Like AC_STRUCT_ST_BLOCKS, but doesn't muck with LIBOBJS
946dnl
947dnl sets bash_cv_struct_stat_st_blocks
948dnl
949dnl unused for now; we'll see how AC_CHECK_MEMBERS works
950dnl
951AC_DEFUN(BASH_STRUCT_ST_BLOCKS,
952[
953AC_MSG_CHECKING([for struct stat.st_blocks])
954AC_CACHE_VAL(bash_cv_struct_stat_st_blocks,
955[AC_TRY_COMPILE(
956[
957#include <sys/types.h>
958#include <sys/stat.h>
959],
960[
961main()
962{
963static struct stat a;
964if (a.st_blocks) return 0;
965return 0;
966}
967], bash_cv_struct_stat_st_blocks=yes, bash_cv_struct_stat_st_blocks=no)
968])
969AC_MSG_RESULT($bash_cv_struct_stat_st_blocks)
970if test "$bash_cv_struct_stat_st_blocks" = "yes"; then
971AC_DEFINE(HAVE_STRUCT_STAT_ST_BLOCKS)
972fi
973])
974
975AC_DEFUN(BASH_CHECK_LIB_TERMCAP,
976[
977if test "X$bash_cv_termcap_lib" = "X"; then
978_bash_needmsg=yes
979else
980AC_MSG_CHECKING(which library has the termcap functions)
981_bash_needmsg=
982fi
983AC_CACHE_VAL(bash_cv_termcap_lib,
984[AC_CHECK_LIB(termcap, tgetent, bash_cv_termcap_lib=libtermcap,
985 [AC_CHECK_LIB(tinfo, tgetent, bash_cv_termcap_lib=libtinfo,
986 [AC_CHECK_LIB(curses, tgetent, bash_cv_termcap_lib=libcurses,
987 [AC_CHECK_LIB(ncurses, tgetent, bash_cv_termcap_lib=libncurses,
988 bash_cv_termcap_lib=gnutermcap)])])])])
989if test "X$_bash_needmsg" = "Xyes"; then
990AC_MSG_CHECKING(which library has the termcap functions)
991fi
992AC_MSG_RESULT(using $bash_cv_termcap_lib)
993if test $bash_cv_termcap_lib = gnutermcap && test -z "$prefer_curses"; then
994LDFLAGS="$LDFLAGS -L./lib/termcap"
995TERMCAP_LIB="./lib/termcap/libtermcap.a"
996TERMCAP_DEP="./lib/termcap/libtermcap.a"
997elif test $bash_cv_termcap_lib = libtermcap && test -z "$prefer_curses"; then
998TERMCAP_LIB=-ltermcap
999TERMCAP_DEP=
1000elif test $bash_cv_termcap_lib = libtinfo; then
1001TERMCAP_LIB=-ltinfo
1002TERMCAP_DEP=
1003elif test $bash_cv_termcap_lib = libncurses; then
1004TERMCAP_LIB=-lncurses
1005TERMCAP_DEP=
1006else
1007TERMCAP_LIB=-lcurses
1008TERMCAP_DEP=
1009fi
1010])
1011
1012dnl
1013dnl Check for the presence of getpeername in libsocket.
1014dnl If libsocket is present, check for libnsl and add it to LIBS if
1015dnl it's there, since most systems with libsocket require linking
1016dnl with libnsl as well. This should only be called if getpeername
1017dnl was not found in libc.
1018dnl
1019dnl NOTE: IF WE FIND GETPEERNAME, WE ASSUME THAT WE HAVE BIND/CONNECT
1020dnl AS WELL
1021dnl
1022AC_DEFUN(BASH_CHECK_LIB_SOCKET,
1023[
1024if test "X$bash_cv_have_socklib" = "X"; then
1025_bash_needmsg=
1026else
1027AC_MSG_CHECKING(for socket library)
1028_bash_needmsg=yes
1029fi
1030AC_CACHE_VAL(bash_cv_have_socklib,
1031[AC_CHECK_LIB(socket, getpeername,
1032 bash_cv_have_socklib=yes, bash_cv_have_socklib=no, -lnsl)])
1033if test "X$_bash_needmsg" = Xyes; then
1034 AC_MSG_RESULT($bash_cv_have_socklib)
1035 _bash_needmsg=
1036fi
1037if test $bash_cv_have_socklib = yes; then
1038 # check for libnsl, add it to LIBS if present
1039 if test "X$bash_cv_have_libnsl" = "X"; then
1040 _bash_needmsg=
1041 else
1042 AC_MSG_CHECKING(for libnsl)
1043 _bash_needmsg=yes
1044 fi
1045 AC_CACHE_VAL(bash_cv_have_libnsl,
1046 [AC_CHECK_LIB(nsl, t_open,
1047 bash_cv_have_libnsl=yes, bash_cv_have_libnsl=no)])
1048 if test "X$_bash_needmsg" = Xyes; then
1049 AC_MSG_RESULT($bash_cv_have_libnsl)
1050 _bash_needmsg=
1051 fi
1052 if test $bash_cv_have_libnsl = yes; then
1053 LIBS="-lsocket -lnsl $LIBS"
1054 else
1055 LIBS="-lsocket $LIBS"
1056 fi
1057 AC_DEFINE(HAVE_LIBSOCKET)
1058 AC_DEFINE(HAVE_GETPEERNAME)
1059fi
1060])
1061
1062AC_DEFUN(BASH_STRUCT_DIRENT_D_INO,
1063[AC_REQUIRE([AC_HEADER_DIRENT])
1064AC_MSG_CHECKING(if struct dirent has a d_ino member)
1065AC_CACHE_VAL(bash_cv_dirent_has_dino,
1066[AC_TRY_COMPILE([
1067#include <stdio.h>
1068#include <sys/types.h>
1069#ifdef HAVE_UNISTD_H
1070# include <unistd.h>
1071#endif /* HAVE_UNISTD_H */
1072#if defined(HAVE_DIRENT_H)
1073# include <dirent.h>
1074#else
1075# define dirent direct
1076# ifdef HAVE_SYS_NDIR_H
1077# include <sys/ndir.h>
1078# endif /* SYSNDIR */
1079# ifdef HAVE_SYS_DIR_H
1080# include <sys/dir.h>
1081# endif /* SYSDIR */
1082# ifdef HAVE_NDIR_H
1083# include <ndir.h>
1084# endif
1085#endif /* HAVE_DIRENT_H */
1086],[
1087struct dirent d; int z; z = d.d_ino;
1088], bash_cv_dirent_has_dino=yes, bash_cv_dirent_has_dino=no)])
1089AC_MSG_RESULT($bash_cv_dirent_has_dino)
1090if test $bash_cv_dirent_has_dino = yes; then
1091AC_DEFINE(STRUCT_DIRENT_HAS_D_INO)
1092fi
1093])
1094
1095AC_DEFUN(BASH_STRUCT_DIRENT_D_FILENO,
1096[AC_REQUIRE([AC_HEADER_DIRENT])
1097AC_MSG_CHECKING(if struct dirent has a d_fileno member)
1098AC_CACHE_VAL(bash_cv_dirent_has_d_fileno,
1099[AC_TRY_COMPILE([
1100#include <stdio.h>
1101#include <sys/types.h>
1102#ifdef HAVE_UNISTD_H
1103# include <unistd.h>
1104#endif /* HAVE_UNISTD_H */
1105#if defined(HAVE_DIRENT_H)
1106# include <dirent.h>
1107#else
1108# define dirent direct
1109# ifdef HAVE_SYS_NDIR_H
1110# include <sys/ndir.h>
1111# endif /* SYSNDIR */
1112# ifdef HAVE_SYS_DIR_H
1113# include <sys/dir.h>
1114# endif /* SYSDIR */
1115# ifdef HAVE_NDIR_H
1116# include <ndir.h>
1117# endif
1118#endif /* HAVE_DIRENT_H */
1119],[
1120struct dirent d; int z; z = d.d_fileno;
1121], bash_cv_dirent_has_d_fileno=yes, bash_cv_dirent_has_d_fileno=no)])
1122AC_MSG_RESULT($bash_cv_dirent_has_d_fileno)
1123if test $bash_cv_dirent_has_d_fileno = yes; then
1124AC_DEFINE(STRUCT_DIRENT_HAS_D_FILENO)
1125fi
1126])
1127
1128AC_DEFUN(BASH_STRUCT_TIMEVAL,
1129[AC_MSG_CHECKING(for struct timeval in sys/time.h and time.h)
1130AC_CACHE_VAL(bash_cv_struct_timeval,
1131[
1132AC_EGREP_HEADER(struct timeval, sys/time.h,
1133 bash_cv_struct_timeval=yes,
1134 AC_EGREP_HEADER(struct timeval, time.h,
1135 bash_cv_struct_timeval=yes,
1136 bash_cv_struct_timeval=no))
1137])
1138AC_MSG_RESULT($bash_cv_struct_timeval)
1139if test $bash_cv_struct_timeval = yes; then
1140 AC_DEFINE(HAVE_TIMEVAL)
1141fi
1142])
1143
1144AC_DEFUN(BASH_STRUCT_WINSIZE,
1145[AC_MSG_CHECKING(for struct winsize in sys/ioctl.h and termios.h)
1146AC_CACHE_VAL(bash_cv_struct_winsize_header,
1147[AC_TRY_COMPILE([#include <sys/types.h>
1148#include <sys/ioctl.h>], [struct winsize x;],
1149 bash_cv_struct_winsize_header=ioctl_h,
1150 [AC_TRY_COMPILE([#include <sys/types.h>
1151#include <termios.h>], [struct winsize x;],
1152 bash_cv_struct_winsize_header=termios_h, bash_cv_struct_winsize_header=other)
1153])])
1154if test $bash_cv_struct_winsize_header = ioctl_h; then
1155 AC_MSG_RESULT(sys/ioctl.h)
1156 AC_DEFINE(STRUCT_WINSIZE_IN_SYS_IOCTL)
1157elif test $bash_cv_struct_winsize_header = termios_h; then
1158 AC_MSG_RESULT(termios.h)
1159 AC_DEFINE(STRUCT_WINSIZE_IN_TERMIOS)
1160else
1161 AC_MSG_RESULT(not found)
1162fi
1163])
1164
1165dnl Check type of signal routines (posix, 4.2bsd, 4.1bsd or v7)
1166AC_DEFUN(BASH_SYS_SIGNAL_VINTAGE,
1167[AC_REQUIRE([AC_TYPE_SIGNAL])
1168AC_MSG_CHECKING(for type of signal functions)
1169AC_CACHE_VAL(bash_cv_signal_vintage,
1170[
1171 AC_TRY_LINK([#include <signal.h>],[
1172 sigset_t ss;
1173 struct sigaction sa;
1174 sigemptyset(&ss); sigsuspend(&ss);
1175 sigaction(SIGINT, &sa, (struct sigaction *) 0);
1176 sigprocmask(SIG_BLOCK, &ss, (sigset_t *) 0);
1177 ], bash_cv_signal_vintage=posix,
1178 [
1179 AC_TRY_LINK([#include <signal.h>], [
1180 int mask = sigmask(SIGINT);
1181 sigsetmask(mask); sigblock(mask); sigpause(mask);
1182 ], bash_cv_signal_vintage=4.2bsd,
1183 [
1184 AC_TRY_LINK([
1185 #include <signal.h>
1186 RETSIGTYPE foo() { }], [
1187 int mask = sigmask(SIGINT);
1188 sigset(SIGINT, foo); sigrelse(SIGINT);
1189 sighold(SIGINT); sigpause(SIGINT);
1190 ], bash_cv_signal_vintage=svr3, bash_cv_signal_vintage=v7
1191 )]
1192 )]
1193)
1194])
1195AC_MSG_RESULT($bash_cv_signal_vintage)
1196if test "$bash_cv_signal_vintage" = posix; then
1197AC_DEFINE(HAVE_POSIX_SIGNALS)
1198elif test "$bash_cv_signal_vintage" = "4.2bsd"; then
1199AC_DEFINE(HAVE_BSD_SIGNALS)
1200elif test "$bash_cv_signal_vintage" = svr3; then
1201AC_DEFINE(HAVE_USG_SIGHOLD)
1202fi
1203])
1204
1205dnl Check if the pgrp of setpgrp() can't be the pid of a zombie process.
1206AC_DEFUN(BASH_SYS_PGRP_SYNC,
1207[AC_REQUIRE([AC_FUNC_GETPGRP])
1208AC_MSG_CHECKING(whether pgrps need synchronization)
1209AC_CACHE_VAL(bash_cv_pgrp_pipe,
1210[AC_TRY_RUN([
1211#ifdef HAVE_UNISTD_H
1212# include <unistd.h>
1213#endif
1214main()
1215{
1216# ifdef GETPGRP_VOID
1217# define getpgID() getpgrp()
1218# else
1219# define getpgID() getpgrp(0)
1220# define setpgid(x,y) setpgrp(x,y)
1221# endif
1222 int pid1, pid2, fds[2];
1223 int status;
1224 char ok;
1225
1226 switch (pid1 = fork()) {
1227 case -1:
1228 exit(1);
1229 case 0:
1230 setpgid(0, getpid());
1231 exit(0);
1232 }
1233 setpgid(pid1, pid1);
1234
1235 sleep(2); /* let first child die */
1236
1237 if (pipe(fds) < 0)
1238 exit(2);
1239
1240 switch (pid2 = fork()) {
1241 case -1:
1242 exit(3);
1243 case 0:
1244 setpgid(0, pid1);
1245 ok = getpgID() == pid1;
1246 write(fds[1], &ok, 1);
1247 exit(0);
1248 }
1249 setpgid(pid2, pid1);
1250
1251 close(fds[1]);
1252 if (read(fds[0], &ok, 1) != 1)
1253 exit(4);
1254 wait(&status);
1255 wait(&status);
1256 exit(ok ? 0 : 5);
1257}
1258], bash_cv_pgrp_pipe=no,bash_cv_pgrp_pipe=yes,
1259 [AC_MSG_WARN(cannot check pgrp synchronization if cross compiling -- defaulting to no)
1260 bash_cv_pgrp_pipe=no])
1261])
1262AC_MSG_RESULT($bash_cv_pgrp_pipe)
1263if test $bash_cv_pgrp_pipe = yes; then
1264AC_DEFINE(PGRP_PIPE)
1265fi
1266])
1267
1268AC_DEFUN(BASH_SYS_REINSTALL_SIGHANDLERS,
1269[AC_REQUIRE([AC_TYPE_SIGNAL])
1270AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
1271AC_MSG_CHECKING([if signal handlers must be reinstalled when invoked])
1272AC_CACHE_VAL(bash_cv_must_reinstall_sighandlers,
1273[AC_TRY_RUN([
1274#include <signal.h>
1275#ifdef HAVE_UNISTD_H
1276#include <unistd.h>
1277#endif
1278
1279typedef RETSIGTYPE sigfunc();
1280
1281int nsigint;
1282
1283#ifdef HAVE_POSIX_SIGNALS
1284sigfunc *
1285set_signal_handler(sig, handler)
1286 int sig;
1287 sigfunc *handler;
1288{
1289 struct sigaction act, oact;
d60d9f65
SS
1290 act.sa_handler = handler;
1291 act.sa_flags = 0;
1292 sigemptyset (&act.sa_mask);
1293 sigemptyset (&oact.sa_mask);
1294 sigaction (sig, &act, &oact);
1295 return (oact.sa_handler);
1296}
1297#else
1298#define set_signal_handler(s, h) signal(s, h)
1299#endif
1300
1301RETSIGTYPE
1302sigint(s)
1303int s;
1304{
1305 nsigint++;
1306}
1307
1308main()
1309{
1310 nsigint = 0;
1311 set_signal_handler(SIGINT, sigint);
1312 kill((int)getpid(), SIGINT);
1313 kill((int)getpid(), SIGINT);
1314 exit(nsigint != 2);
1315}
1316], bash_cv_must_reinstall_sighandlers=no, bash_cv_must_reinstall_sighandlers=yes,
c862e87b 1317 [AC_MSG_WARN(cannot check signal handling if cross compiling -- defaulting to no)
d60d9f65
SS
1318 bash_cv_must_reinstall_sighandlers=no]
1319)])
1320AC_MSG_RESULT($bash_cv_must_reinstall_sighandlers)
1321if test $bash_cv_must_reinstall_sighandlers = yes; then
1322AC_DEFINE(MUST_REINSTALL_SIGHANDLERS)
1323fi
1324])
1325
d60d9f65 1326dnl check that some necessary job control definitions are present
9255ee31
EZ
1327AC_DEFUN(BASH_SYS_JOB_CONTROL_MISSING,
1328[AC_REQUIRE([BASH_SYS_SIGNAL_VINTAGE])
d60d9f65
SS
1329AC_MSG_CHECKING(for presence of necessary job control definitions)
1330AC_CACHE_VAL(bash_cv_job_control_missing,
1331[AC_TRY_RUN([
1332#include <sys/types.h>
1333#ifdef HAVE_SYS_WAIT_H
1334#include <sys/wait.h>
1335#endif
1336#ifdef HAVE_UNISTD_H
1337#include <unistd.h>
1338#endif
1339#include <signal.h>
1340
1341/* Add more tests in here as appropriate. */
1342main()
1343{
1344/* signal type */
1345#if !defined (HAVE_POSIX_SIGNALS) && !defined (HAVE_BSD_SIGNALS)
1346exit(1);
1347#endif
1348
1349/* signals and tty control. */
1350#if !defined (SIGTSTP) || !defined (SIGSTOP) || !defined (SIGCONT)
1351exit (1);
1352#endif
1353
1354/* process control */
1355#if !defined (WNOHANG) || !defined (WUNTRACED)
1356exit(1);
1357#endif
1358
1359/* Posix systems have tcgetpgrp and waitpid. */
1360#if defined (_POSIX_VERSION) && !defined (HAVE_TCGETPGRP)
1361exit(1);
1362#endif
1363
1364#if defined (_POSIX_VERSION) && !defined (HAVE_WAITPID)
1365exit(1);
1366#endif
1367
1368/* Other systems have TIOCSPGRP/TIOCGPRGP and wait3. */
1369#if !defined (_POSIX_VERSION) && !defined (HAVE_WAIT3)
1370exit(1);
1371#endif
1372
1373exit(0);
1374}], bash_cv_job_control_missing=present, bash_cv_job_control_missing=missing,
c862e87b 1375 [AC_MSG_WARN(cannot check job control if cross-compiling -- defaulting to missing)
d60d9f65
SS
1376 bash_cv_job_control_missing=missing]
1377)])
1378AC_MSG_RESULT($bash_cv_job_control_missing)
1379if test $bash_cv_job_control_missing = missing; then
1380AC_DEFINE(JOB_CONTROL_MISSING)
1381fi
1382])
1383
1384dnl check whether named pipes are present
1385dnl this requires a previous check for mkfifo, but that is awkward to specify
1386AC_DEFUN(BASH_SYS_NAMED_PIPES,
1387[AC_MSG_CHECKING(for presence of named pipes)
1388AC_CACHE_VAL(bash_cv_sys_named_pipes,
1389[AC_TRY_RUN([
1390#include <sys/types.h>
1391#include <sys/stat.h>
1392#ifdef HAVE_UNISTD_H
1393#include <unistd.h>
1394#endif
1395
1396/* Add more tests in here as appropriate. */
1397main()
1398{
1b17e766 1399int fd, err;
d60d9f65
SS
1400
1401#if defined (HAVE_MKFIFO)
1402exit (0);
1403#endif
1404
1405#if !defined (S_IFIFO) && (defined (_POSIX_VERSION) && !defined (S_ISFIFO))
1406exit (1);
1407#endif
1408
1409#if defined (NeXT)
1410exit (1);
1411#endif
1b17e766
EZ
1412err = mkdir("/tmp/bash-aclocal", 0700);
1413if (err < 0) {
1414 perror ("mkdir");
1415 exit(1);
1416}
1417fd = mknod ("/tmp/bash-aclocal/sh-np-autoconf", 0666 | S_IFIFO, 0);
1418if (fd == -1) {
1419 rmdir ("/tmp/bash-aclocal");
d60d9f65 1420 exit (1);
1b17e766 1421}
d60d9f65 1422close(fd);
1b17e766
EZ
1423unlink ("/tmp/bash-aclocal/sh-np-autoconf");
1424rmdir ("/tmp/bash-aclocal");
d60d9f65
SS
1425exit(0);
1426}], bash_cv_sys_named_pipes=present, bash_cv_sys_named_pipes=missing,
c862e87b 1427 [AC_MSG_WARN(cannot check for named pipes if cross-compiling -- defaulting to missing)
d60d9f65
SS
1428 bash_cv_sys_named_pipes=missing]
1429)])
1430AC_MSG_RESULT($bash_cv_sys_named_pipes)
1431if test $bash_cv_sys_named_pipes = missing; then
1432AC_DEFINE(NAMED_PIPES_MISSING)
1433fi
1434])
1435
9255ee31
EZ
1436AC_DEFUN(BASH_SYS_DEFAULT_MAIL_DIR,
1437[AC_MSG_CHECKING(for default mail directory)
1438AC_CACHE_VAL(bash_cv_mail_dir,
1439[if test -d /var/mail; then
1440 bash_cv_mail_dir=/var/mail
1441 elif test -d /var/spool/mail; then
1442 bash_cv_mail_dir=/var/spool/mail
1443 elif test -d /usr/mail; then
1444 bash_cv_mail_dir=/usr/mail
1445 elif test -d /usr/spool/mail; then
1446 bash_cv_mail_dir=/usr/spool/mail
1447 else
1448 bash_cv_mail_dir=unknown
1449 fi
d60d9f65 1450])
9255ee31
EZ
1451AC_MSG_RESULT($bash_cv_mail_dir)
1452AC_DEFINE_UNQUOTED(DEFAULT_MAIL_DIRECTORY, "$bash_cv_mail_dir")
1453])
1454
1455AC_DEFUN(BASH_HAVE_TIOCGWINSZ,
1456[AC_MSG_CHECKING(for TIOCGWINSZ in sys/ioctl.h)
1457AC_CACHE_VAL(bash_cv_tiocgwinsz_in_ioctl,
1458[AC_TRY_COMPILE([#include <sys/types.h>
1459#include <sys/ioctl.h>], [int x = TIOCGWINSZ;],
1460 bash_cv_tiocgwinsz_in_ioctl=yes,bash_cv_tiocgwinsz_in_ioctl=no)])
1461AC_MSG_RESULT($bash_cv_tiocgwinsz_in_ioctl)
1462if test $bash_cv_tiocgwinsz_in_ioctl = yes; then
1463AC_DEFINE(GWINSZ_IN_SYS_IOCTL)
d60d9f65
SS
1464fi
1465])
1466
1467AC_DEFUN(BASH_HAVE_TIOCSTAT,
1468[AC_MSG_CHECKING(for TIOCSTAT in sys/ioctl.h)
1469AC_CACHE_VAL(bash_cv_tiocstat_in_ioctl,
1470[AC_TRY_COMPILE([#include <sys/types.h>
1471#include <sys/ioctl.h>], [int x = TIOCSTAT;],
1472 bash_cv_tiocstat_in_ioctl=yes,bash_cv_tiocstat_in_ioctl=no)])
1473AC_MSG_RESULT($bash_cv_tiocstat_in_ioctl)
1474if test $bash_cv_tiocstat_in_ioctl = yes; then
1475AC_DEFINE(TIOCSTAT_IN_SYS_IOCTL)
1476fi
1477])
1478
1479AC_DEFUN(BASH_HAVE_FIONREAD,
1480[AC_MSG_CHECKING(for FIONREAD in sys/ioctl.h)
1481AC_CACHE_VAL(bash_cv_fionread_in_ioctl,
1482[AC_TRY_COMPILE([#include <sys/types.h>
1483#include <sys/ioctl.h>], [int x = FIONREAD;],
1484 bash_cv_fionread_in_ioctl=yes,bash_cv_fionread_in_ioctl=no)])
1485AC_MSG_RESULT($bash_cv_fionread_in_ioctl)
1486if test $bash_cv_fionread_in_ioctl = yes; then
1487AC_DEFINE(FIONREAD_IN_SYS_IOCTL)
1488fi
1489])
1490
1491dnl
1492dnl See if speed_t is declared in <sys/types.h>. Some versions of linux
1493dnl require a definition of speed_t each time <termcap.h> is included,
1494dnl but you can only get speed_t if you include <termios.h> (on some
1495dnl versions) or <sys/types.h> (on others).
1496dnl
9255ee31 1497AC_DEFUN(BASH_CHECK_SPEED_T,
d60d9f65
SS
1498[AC_MSG_CHECKING(for speed_t in sys/types.h)
1499AC_CACHE_VAL(bash_cv_speed_t_in_sys_types,
1500[AC_TRY_COMPILE([#include <sys/types.h>], [speed_t x;],
1501 bash_cv_speed_t_in_sys_types=yes,bash_cv_speed_t_in_sys_types=no)])
1502AC_MSG_RESULT($bash_cv_speed_t_in_sys_types)
1503if test $bash_cv_speed_t_in_sys_types = yes; then
1504AC_DEFINE(SPEED_T_IN_SYS_TYPES)
1505fi
1506])
1507
1508AC_DEFUN(BASH_CHECK_GETPW_FUNCS,
9255ee31
EZ
1509[AC_MSG_CHECKING(whether getpw functions are declared in pwd.h)
1510AC_CACHE_VAL(bash_cv_getpw_declared,
1511[AC_EGREP_CPP(getpwuid,
1512[
1513#include <sys/types.h>
1514#ifdef HAVE_UNISTD_H
1515# include <unistd.h>
1516#endif
d60d9f65 1517#include <pwd.h>
9255ee31
EZ
1518],
1519bash_cv_getpw_declared=yes,bash_cv_getpw_declared=no)])
1520AC_MSG_RESULT($bash_cv_getpw_declared)
1521if test $bash_cv_getpw_declared = yes; then
d60d9f65
SS
1522AC_DEFINE(HAVE_GETPW_DECLS)
1523fi
1524])
1525
1526AC_DEFUN(BASH_CHECK_DEV_FD,
1527[AC_MSG_CHECKING(whether /dev/fd is available)
1528AC_CACHE_VAL(bash_cv_dev_fd,
1529[if test -d /dev/fd && test -r /dev/fd/0; then
1530 bash_cv_dev_fd=standard
1531 elif test -d /proc/self/fd && test -r /proc/self/fd/0; then
1532 bash_cv_dev_fd=whacky
1533 else
1534 bash_cv_dev_fd=absent
1535 fi
1536])
1537AC_MSG_RESULT($bash_cv_dev_fd)
1538if test $bash_cv_dev_fd = "standard"; then
1539 AC_DEFINE(HAVE_DEV_FD)
1540 AC_DEFINE(DEV_FD_PREFIX, "/dev/fd/")
1541elif test $bash_cv_dev_fd = "whacky"; then
1542 AC_DEFINE(HAVE_DEV_FD)
1543 AC_DEFINE(DEV_FD_PREFIX, "/proc/self/fd/")
1544fi
1545])
1546
1b17e766
EZ
1547AC_DEFUN(BASH_CHECK_DEV_STDIN,
1548[AC_MSG_CHECKING(whether /dev/stdin stdout stderr are available)
1549AC_CACHE_VAL(bash_cv_dev_stdin,
1550[if test -d /dev/fd && test -r /dev/stdin; then
1551 bash_cv_dev_stdin=present
1552 elif test -d /proc/self/fd && test -r /dev/stdin; then
1553 bash_cv_dev_stdin=present
1554 else
1555 bash_cv_dev_stdin=absent
1556 fi
1557])
1558AC_MSG_RESULT($bash_cv_dev_stdin)
1559if test $bash_cv_dev_stdin = "present"; then
1560 AC_DEFINE(HAVE_DEV_STDIN)
1561fi
1562])
1563
d60d9f65
SS
1564dnl
1565dnl Check if HPUX needs _KERNEL defined for RLIMIT_* definitions
1566dnl
9255ee31 1567AC_DEFUN(BASH_CHECK_KERNEL_RLIMIT,
d60d9f65
SS
1568[AC_MSG_CHECKING([whether $host_os needs _KERNEL for RLIMIT defines])
1569AC_CACHE_VAL(bash_cv_kernel_rlimit,
1570[AC_TRY_COMPILE([
1571#include <sys/types.h>
1572#include <sys/resource.h>
1573],
1574[
1575 int f;
1576 f = RLIMIT_DATA;
1577], bash_cv_kernel_rlimit=no,
1578[AC_TRY_COMPILE([
1579#include <sys/types.h>
1580#define _KERNEL
1581#include <sys/resource.h>
1582#undef _KERNEL
1583],
1584[
1585 int f;
1586 f = RLIMIT_DATA;
1587], bash_cv_kernel_rlimit=yes, bash_cv_kernel_rlimit=no)]
1588)])
1589AC_MSG_RESULT($bash_cv_kernel_rlimit)
1590if test $bash_cv_kernel_rlimit = yes; then
1591AC_DEFINE(RLIMIT_NEEDS_KERNEL)
1592fi
1593])
1594
c862e87b
JM
1595dnl
1596dnl Check for 64-bit off_t -- used for malloc alignment
1597dnl
1598dnl C does not allow duplicate case labels, so the compile will fail if
1599dnl sizeof(off_t) is > 4.
1600dnl
1601AC_DEFUN(BASH_CHECK_OFF_T_64,
1602[AC_CACHE_CHECK(for 64-bit off_t, bash_cv_off_t_64,
1603AC_TRY_COMPILE([
1604#ifdef HAVE_UNISTD_H
1605#include <unistd.h>
1606#endif
1607#include <sys/types.h>
1608],[
1609switch (0) case 0: case (sizeof (off_t) <= 4):;
1610], bash_cv_off_t_64=no, bash_cv_off_t_64=yes))
1611if test $bash_cv_off_t_64 = yes; then
1612 AC_DEFINE(HAVE_OFF_T_64)
1613fi])
1b17e766 1614
9255ee31
EZ
1615AC_DEFUN(BASH_CHECK_RTSIGS,
1616[AC_MSG_CHECKING(for unusable real-time signals due to large values)
1617AC_CACHE_VAL(bash_cv_unusable_rtsigs,
1618[AC_TRY_RUN([
1619#include <sys/types.h>
1620#include <signal.h>
1621
1622#ifndef NSIG
1623# define NSIG 64
1624#endif
1625
1626main ()
1627{
1628 int n_sigs = 2 * NSIG;
1629#ifdef SIGRTMIN
1630 int rtmin = SIGRTMIN;
1631#else
1632 int rtmin = 0;
1633#endif
1634
1635 exit(rtmin < n_sigs);
1636}], bash_cv_unusable_rtsigs=yes, bash_cv_unusable_rtsigs=no,
1637 [AC_MSG_WARN(cannot check real-time signals if cross compiling -- defaulting to yes)
1638 bash_cv_unusable_rtsigs=yes]
1639)])
1640AC_MSG_RESULT($bash_cv_unusable_rtsigs)
1641if test $bash_cv_unusable_rtsigs = yes; then
1642AC_DEFINE(UNUSABLE_RT_SIGNALS)
1643fi
1644])
1645
1646dnl
1647dnl check for availability of multibyte characters and functions
1648dnl
1649AC_DEFUN(BASH_CHECK_MULTIBYTE,
1b17e766 1650[
9255ee31
EZ
1651AC_CHECK_HEADERS(wctype.h)
1652AC_CHECK_HEADERS(wchar.h)
1653AC_CHECK_HEADERS(langinfo.h)
1654
832a9484 1655AC_CHECK_FUNC(mbrtowc, AC_DEFINE(HAVE_MBRTOWC))
9255ee31 1656AC_CHECK_FUNC(mbsrtowcs, AC_DEFINE(HAVE_MBSRTOWCS))
05bc3370
MK
1657AC_CHECK_FUNC(wcwidth, AC_DEFINE(HAVE_WCWIDTH))
1658if test "$ac_cv_func_wcwidth" = no && test "$ac_cv_header_wchar_h" = yes; then
1659 WCWIDTH_OBJ=wcwidth.o
25ed0b71 1660else
05bc3370 1661 WCWIDTH_OBJ=
25ed0b71 1662fi
05bc3370 1663AC_SUBST(WCWIDTH_OBJ)
9255ee31
EZ
1664
1665AC_CACHE_CHECK([for mbstate_t], bash_cv_have_mbstate_t,
1666[AC_TRY_RUN([
1667#include <wchar.h>
1668int
1669main ()
1670{
1671 mbstate_t ps;
1672 return 0;
1673}], bash_cv_have_mbstate_t=yes, bash_cv_have_mbstate_t=no)])
1674if test $bash_cv_have_mbstate_t = yes; then
1675 AC_DEFINE(HAVE_MBSTATE_T)
1676fi
1677
1678AC_CACHE_CHECK([for nl_langinfo and CODESET], bash_cv_langinfo_codeset,
1679[AC_TRY_LINK(
1680[#include <langinfo.h>],
1681[char* cs = nl_langinfo(CODESET);],
1682bash_cv_langinfo_codeset=yes, bash_cv_langinfo_codeset=no)])
1683if test $bash_cv_langinfo_codeset = yes; then
1684 AC_DEFINE(HAVE_LANGINFO_CODESET)
1685fi
1686
1b17e766 1687])
9255ee31
EZ
1688
1689dnl need: prefix exec_prefix libdir includedir CC TERMCAP_LIB
1690dnl require:
1691dnl AC_PROG_CC
1692dnl BASH_CHECK_LIB_TERMCAP
1693
1694AC_DEFUN(RL_LIB_READLINE_VERSION,
1695[
1696AC_REQUIRE([BASH_CHECK_LIB_TERMCAP])
1697
1698AC_MSG_CHECKING([version of installed readline library])
1699
1700# What a pain in the ass this is.
1701
1702# save cpp and ld options
1703_save_CFLAGS="$CFLAGS"
1704_save_LDFLAGS="$LDFLAGS"
1705_save_LIBS="$LIBS"
1706
1707# Don't set ac_cv_rl_prefix if the caller has already assigned a value. This
1708# allows the caller to do something like $_rl_prefix=$withval if the user
1709# specifies --with-installed-readline=PREFIX as an argument to configure
1710
1711if test -z "$ac_cv_rl_prefix"; then
1712test "x$prefix" = xNONE && ac_cv_rl_prefix=$ac_default_prefix || ac_cv_rl_prefix=${prefix}
1713fi
1714
1715eval ac_cv_rl_includedir=${ac_cv_rl_prefix}/include
1716eval ac_cv_rl_libdir=${ac_cv_rl_prefix}/lib
1717
1718LIBS="$LIBS -lreadline ${TERMCAP_LIB}"
1719CFLAGS="$CFLAGS -I${ac_cv_rl_includedir}"
1720LDFLAGS="$LDFLAGS -L${ac_cv_rl_libdir}"
1721
1722AC_TRY_RUN([
1723#include <stdio.h>
1724#include <readline/readline.h>
1725
1726main()
1727{
1728 FILE *fp;
1729 fp = fopen("conftest.rlv", "w");
1730 if (fp == 0) exit(1);
1731 fprintf(fp, "%s\n", rl_library_version ? rl_library_version : "0.0");
1732 fclose(fp);
1733 exit(0);
1734}
1735],
1736ac_cv_rl_version=`cat conftest.rlv`,
1737ac_cv_rl_version='0.0',
1738ac_cv_rl_version='4.2')
1739
1740CFLAGS="$_save_CFLAGS"
1741LDFLAGS="$_save_LDFLAGS"
1742LIBS="$_save_LIBS"
1743
1744RL_MAJOR=0
1745RL_MINOR=0
1746
1747# (
1748case "$ac_cv_rl_version" in
17492*|3*|4*|5*|6*|7*|8*|9*)
1750 RL_MAJOR=`echo $ac_cv_rl_version | sed 's:\..*$::'`
1751 RL_MINOR=`echo $ac_cv_rl_version | sed -e 's:^.*\.::' -e 's:[[a-zA-Z]]*$::'`
1752 ;;
1753esac
1754
1755# (((
1756case $RL_MAJOR in
1757[[0-9][0-9]]) _RL_MAJOR=$RL_MAJOR ;;
1758[[0-9]]) _RL_MAJOR=0$RL_MAJOR ;;
1759*) _RL_MAJOR=00 ;;
1760esac
1761
1762# (((
1763case $RL_MINOR in
1764[[0-9][0-9]]) _RL_MINOR=$RL_MINOR ;;
1765[[0-9]]) _RL_MINOR=0$RL_MINOR ;;
1766*) _RL_MINOR=00 ;;
1767esac
1768
1769RL_VERSION="0x${_RL_MAJOR}${_RL_MINOR}"
1770
1771# Readline versions greater than 4.2 have these defines in readline.h
1772
1773if test $ac_cv_rl_version = '0.0' ; then
1774 AC_MSG_WARN([Could not test version of installed readline library.])
1775elif test $RL_MAJOR -gt 4 || { test $RL_MAJOR = 4 && test $RL_MINOR -gt 2 ; } ; then
1776 # set these for use by the caller
1777 RL_PREFIX=$ac_cv_rl_prefix
1778 RL_LIBDIR=$ac_cv_rl_libdir
1779 RL_INCLUDEDIR=$ac_cv_rl_includedir
1780 AC_MSG_RESULT($ac_cv_rl_version)
1781else
1782
1783AC_DEFINE_UNQUOTED(RL_READLINE_VERSION, $RL_VERSION, [encoded version of the installed readline library])
1784AC_DEFINE_UNQUOTED(RL_VERSION_MAJOR, $RL_MAJOR, [major version of installed readline library])
1785AC_DEFINE_UNQUOTED(RL_VERSION_MINOR, $RL_MINOR, [minor version of installed readline library])
1786
1787AC_SUBST(RL_VERSION)
1788AC_SUBST(RL_MAJOR)
1789AC_SUBST(RL_MINOR)
1790
1791# set these for use by the caller
1792RL_PREFIX=$ac_cv_rl_prefix
1793RL_LIBDIR=$ac_cv_rl_libdir
1794RL_INCLUDEDIR=$ac_cv_rl_includedir
1795
1796AC_MSG_RESULT($ac_cv_rl_version)
1797
1b17e766
EZ
1798fi
1799])
This page took 0.235656 seconds and 4 git commands to generate.