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