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