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