* readline.c (scm_init_readline): Only do init_bouncing_parens ()
[bpt/guile.git] / guile-readline / configure.in
CommitLineData
691f5a4d
MV
1AC_PREREQ(2.50)
2
6fb858d5
RB
3AC_INIT(guile-readline,
4 m4_esyscmd(. ../GUILE-VERSION && echo -n ${GUILE_VERSION}))
5be9f729 5AC_CONFIG_AUX_DIR([.])
6fb858d5 6AC_CONFIG_SRCDIR(readline.c)
5be9f729 7AM_CONFIG_HEADER([guile-readline-config.h])
6fb858d5
RB
8AM_INIT_AUTOMAKE([foreign no-define])
9
395753a1 10. $srcdir/../GUILE-VERSION
c374ab69 11
78f81266 12AC_PROG_INSTALL
c374ab69 13AC_PROG_CC
52b30d5e 14AM_PROG_CC_STDC
78f81266 15AC_LIBTOOL_WIN32_DLL
c78a96e0 16AC_PROG_LIBTOOL
c374ab69 17
78f81266
MV
18dnl
19dnl Check for Winsock and other functionality on Win32 (*not* CygWin)
20dnl
21AC_CYGWIN
22AC_MINGW32
23EXTRA_DEFS=""
24if test "$MINGW32" = "yes" ; then
25 if test $enable_shared = yes ; then
8f99e3f3 26 EXTRA_DEFS="-DSCM_IMPORT"
78f81266
MV
27 fi
28fi
29AC_SUBST(EXTRA_DEFS)
30
49dd8ff3 31for termlib in ncurses curses termcap terminfo termlib ; do
88a1ce4c 32 AC_CHECK_LIB(${termlib}, tgoto,
c374ab69
MV
33 [LIBS="-l${termlib} $LIBS"; break])
34done
35
49dd8ff3
MV
36AC_CHECK_LIB(readline, readline)
37if test $ac_cv_lib_readline_readline = no; then
66e28f02 38 AC_MSG_WARN([libreadline was not found on your system.])
c374ab69
MV
39fi
40
60113271
MV
41AC_CHECK_FUNCS(siginterrupt rl_clear_signals rl_cleanup_after_signal)
42
dcb17187
MV
43dnl Check for modern readline naming
44AC_CHECK_FUNCS(rl_filename_completion_function)
45
6a945c34
NJ
46dnl Check for rl_get_keymap. We only use this for deciding whether to
47dnl install paren matching on the Guile command line (when using
48dnl readline for input), so it's completely optional.
49AC_CHECK_FUNCS(rl_get_keymap)
50
60113271
MV
51dnl Check for rl_pre_input_hook. This is more complicated because on
52dnl some systems (HP/UX), the linker wont let us treat
53dnl rl_pre_input_hook as a function when it really is a function
54dnl pointer.
55
56AC_MSG_CHECKING([for rl_pre_input_hook])
57AC_CACHE_VAL(ac_cv_var_rl_pre_input_hook,
58[AC_TRY_LINK([
59#include <stdio.h>
60#include <readline/readline.h>
61], [
62rl_pre_input_hook = 0;
63],
64ac_cv_var_rl_pre_input_hook=yes,
65ac_cv_var_rl_pre_input_hook=no)])
66AC_MSG_RESULT($ac_cv_var_rl_pre_input_hook)
67if test $ac_cv_var_rl_pre_input_hook = yes; then
5be9f729
KR
68 AC_DEFINE(HAVE_RL_PRE_INPUT_HOOK,1,
69 [Define if rl_pre_input_hook is available.])
60113271 70fi
49a2970b
MD
71
72
73AC_MSG_CHECKING(if readline clears SA_RESTART flag for SIGWINCH)
74AC_CACHE_VAL(guile_cv_sigwinch_sa_restart_cleared,
75AC_TRY_RUN([#include <signal.h>
76#include <stdio.h>
77#include <readline/readline.h>
78
79int
80hook ()
81{
82 struct sigaction action;
83
84 sigaction (SIGWINCH, NULL, &action);
85 rl_cleanup_after_signal();
88a1ce4c 86
49a2970b
MD
87 /* exit with 0 if readline disabled SA_RESTART */
88 exit (action.sa_flags & SA_RESTART);
89}
88a1ce4c 90
49a2970b
MD
91int
92main ()
93{
94 struct sigaction action;
88a1ce4c 95
49a2970b
MD
96 sigaction (SIGWINCH, NULL, &action);
97 action.sa_flags |= SA_RESTART;
98 sigaction (SIGWINCH, &action, NULL);
88a1ce4c 99
3894870b
MV
100 /* Give readline something to read. Otherwise, it might hang, for
101 example when run as a background process with job control.
102 */
103 rl_instream = fopen ("/dev/null", "r");
104 if (rl_instream == NULL)
105 {
106 perror ("/dev/null");
107 exit (1);
108 }
109
49a2970b
MD
110 rl_pre_input_hook = hook;
111 readline ("");
112}],
113guile_cv_sigwinch_sa_restart_cleared=yes,
114guile_cv_sigwinch_sa_restart_cleared=no,
115guile_cv_sigwinch_sa_restart_cleared=yes))
116AC_MSG_RESULT($guile_cv_sigwinch_sa_restart_cleared)
117if test $guile_cv_sigwinch_sa_restart_cleared = yes; then
5be9f729
KR
118 AC_DEFINE(GUILE_SIGWINCH_SA_RESTART_CLEARED, 1,
119 [Define if readline disables SA_RESTART.])
49a2970b 120fi
c374ab69
MV
121
122AC_CACHE_CHECK([for rl_getc_function pointer in readline],
123 ac_cv_var_rl_getc_function,
124 [AC_TRY_LINK([
125#include <stdio.h>
126#include <readline/readline.h>],
f30a1c95 127 [printf ("%ld", (long) rl_getc_function)],
c374ab69
MV
128 [ac_cv_var_rl_getc_function=yes],
129 [ac_cv_var_rl_getc_function=no])])
130if test "${ac_cv_var_rl_getc_function}" = "yes"; then
587cd126
RB
131 AC_DEFINE(HAVE_RL_GETC_FUNCTION, 1,
132 [Define if your readline library has the rl_getc_function variable.])
c374ab69
MV
133fi
134
c2c27602 135if test $ac_cv_lib_readline_readline = yes \
c374ab69 136 -a $ac_cv_var_rl_getc_function = no; then
5ca264aa
MD
137 AC_MSG_WARN([*** libreadline is too old on your system.])
138 AC_MSG_WARN([*** You need readline version 2.1 or later.])
c374ab69
MV
139fi
140
141AC_CHECK_FUNCS(strdup)
142
88a1ce4c 143. $srcdir/LIBGUILEREADLINE-VERSION
e5ab7101 144AC_SUBST(LIBGUILEREADLINE_MAJOR)
cbab4855
RB
145AC_SUBST(LIBGUILEREADLINE_INTERFACE_CURRENT)
146AC_SUBST(LIBGUILEREADLINE_INTERFACE_REVISION)
147AC_SUBST(LIBGUILEREADLINE_INTERFACE_AGE)
148AC_SUBST(LIBGUILEREADLINE_INTERFACE)
149
41d8c90a
RB
150AC_SUBST(GUILE_EFFECTIVE_VERSION)
151
6fb858d5 152AC_CONFIG_FILES(Makefile ice-9/Makefile)
691f5a4d 153AC_OUTPUT