Lazy-catch handlers are no longer allowed to return.
[bpt/guile.git] / guile-readline / configure.in
1 AC_INIT(readline.c)
2 . $srcdir/../GUILE-VERSION
3 PACKAGE=guile-readline
4 AM_INIT_AUTOMAKE($PACKAGE, $VERSION, no-define)
5
6 AC_PROG_CC
7 AM_PROG_CC_STDC
8 AM_PROG_LIBTOOL
9
10 for termlib in ncurses curses termcap terminfo termlib ; do
11 AC_CHECK_LIB(${termlib}, tgoto,
12 [LIBS="-l${termlib} $LIBS"; break])
13 done
14
15 AC_CHECK_LIB(readline, readline)
16 if test $ac_cv_lib_readline_readline = no; then
17 AC_MSG_WARN([libreadline was not found on your system.])
18 fi
19
20 AC_CHECK_FUNCS(siginterrupt rl_clear_signals rl_cleanup_after_signal)
21
22 dnl Check for rl_pre_input_hook. This is more complicated because on
23 dnl some systems (HP/UX), the linker wont let us treat
24 dnl rl_pre_input_hook as a function when it really is a function
25 dnl pointer.
26
27 AC_MSG_CHECKING([for rl_pre_input_hook])
28 AC_CACHE_VAL(ac_cv_var_rl_pre_input_hook,
29 [AC_TRY_LINK([
30 #include <stdio.h>
31 #include <readline/readline.h>
32 ], [
33 rl_pre_input_hook = 0;
34 ],
35 ac_cv_var_rl_pre_input_hook=yes,
36 ac_cv_var_rl_pre_input_hook=no)])
37 AC_MSG_RESULT($ac_cv_var_rl_pre_input_hook)
38 if test $ac_cv_var_rl_pre_input_hook = yes; then
39 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK)
40 fi
41
42
43 AC_MSG_CHECKING(if readline clears SA_RESTART flag for SIGWINCH)
44 AC_CACHE_VAL(guile_cv_sigwinch_sa_restart_cleared,
45 AC_TRY_RUN([#include <signal.h>
46 #include <stdio.h>
47 #include <readline/readline.h>
48
49 int
50 hook ()
51 {
52 struct sigaction action;
53
54 sigaction (SIGWINCH, NULL, &action);
55 rl_cleanup_after_signal();
56
57 /* exit with 0 if readline disabled SA_RESTART */
58 exit (action.sa_flags & SA_RESTART);
59 }
60
61 int
62 main ()
63 {
64 struct sigaction action;
65
66 sigaction (SIGWINCH, NULL, &action);
67 action.sa_flags |= SA_RESTART;
68 sigaction (SIGWINCH, &action, NULL);
69
70 rl_pre_input_hook = hook;
71 readline ("");
72 }],
73 guile_cv_sigwinch_sa_restart_cleared=yes,
74 guile_cv_sigwinch_sa_restart_cleared=no,
75 guile_cv_sigwinch_sa_restart_cleared=yes))
76 AC_MSG_RESULT($guile_cv_sigwinch_sa_restart_cleared)
77 if test $guile_cv_sigwinch_sa_restart_cleared = yes; then
78 AC_DEFINE(GUILE_SIGWINCH_SA_RESTART_CLEARED)
79 fi
80
81 AC_CACHE_CHECK([for rl_getc_function pointer in readline],
82 ac_cv_var_rl_getc_function,
83 [AC_TRY_LINK([
84 #include <stdio.h>
85 #include <readline/readline.h>],
86 [printf ("%ld", (long) rl_getc_function)],
87 [ac_cv_var_rl_getc_function=yes],
88 [ac_cv_var_rl_getc_function=no])])
89 if test "${ac_cv_var_rl_getc_function}" = "yes"; then
90 AC_DEFINE(HAVE_RL_GETC_FUNCTION)
91 fi
92
93 if test $ac_cv_lib_readline_readline = yes \
94 -a $ac_cv_var_rl_getc_function = no; then
95 AC_MSG_WARN([*** libreadline is too old on your system.])
96 AC_MSG_WARN([*** You need readline version 2.1 or later.])
97 fi
98
99 AC_CHECK_FUNCS(strdup)
100
101 AC_OUTPUT(Makefile)