1 | ###############################################
|
---|
2 | # Readline included by default unless explicitly asked not to
|
---|
3 | test "${with_readline+set}" != "set" && with_readline=yes
|
---|
4 |
|
---|
5 | EXTERNAL_READLINE=no
|
---|
6 | # test for where we get readline() from
|
---|
7 | AC_MSG_CHECKING(whether to use readline)
|
---|
8 | AC_ARG_WITH(readline,
|
---|
9 | [AS_HELP_STRING([--with-readline[=DIR]], [Look for readline include/libs in DIR (default=auto)])],
|
---|
10 | [ case "$with_readline" in
|
---|
11 | yes)
|
---|
12 | AC_MSG_RESULT(yes)
|
---|
13 |
|
---|
14 | AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
|
---|
15 | AC_CHECK_HEADERS(readline/history.h)
|
---|
16 |
|
---|
17 | AC_CHECK_HEADERS(readline.h readline/readline.h,[
|
---|
18 | for termlib in ncurses curses termcap terminfo termlib tinfo; do
|
---|
19 | AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
|
---|
20 | done
|
---|
21 | AC_CHECK_LIB(readline, rl_callback_handler_install,
|
---|
22 | [TERMLIBS="-lreadline $TERMLIBS"
|
---|
23 | EXTERNAL_READLINE=yes
|
---|
24 | break], [TERMLIBS=], $TERMLIBS)])
|
---|
25 | ;;
|
---|
26 | no)
|
---|
27 | AC_MSG_RESULT(no)
|
---|
28 | ;;
|
---|
29 | *)
|
---|
30 | AC_MSG_RESULT(yes)
|
---|
31 |
|
---|
32 | # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
|
---|
33 | # alternate readline path
|
---|
34 | _ldflags=${LDFLAGS}
|
---|
35 | _cppflags=${CPPFLAGS}
|
---|
36 |
|
---|
37 | # Add additional search path
|
---|
38 | LDFLAGS="-L$with_readline/lib $LDFLAGS"
|
---|
39 | CPPFLAGS="-I$with_readline/include $CPPFLAGS"
|
---|
40 |
|
---|
41 | AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
|
---|
42 | AC_CHECK_HEADERS(readline/history.h)
|
---|
43 |
|
---|
44 | AC_CHECK_HEADERS(readline.h readline/readline.h,[
|
---|
45 | for termlib in ncurses curses termcap terminfo termlib; do
|
---|
46 | AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
|
---|
47 | done
|
---|
48 | AC_CHECK_LIB(readline, rl_callback_handler_install,
|
---|
49 | [TERMLDFLAGS="-L$with_readline/lib"
|
---|
50 | TERMCPPFLAGS="-I$with_readline/include"
|
---|
51 | LDFLAGS="-L$with_readline/lib $LDFLAGS"
|
---|
52 | CPPFLAGS="-I$with_readline/include $CPPFLAGS"
|
---|
53 | TERMLIBS="-lreadline $TERMLIBS"
|
---|
54 | EXTERNAL_READLINE=yes
|
---|
55 | break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
|
---|
56 |
|
---|
57 | ;;
|
---|
58 | esac],
|
---|
59 | AC_MSG_RESULT(no)
|
---|
60 | )
|
---|
61 |
|
---|
62 | # The readline API changed slightly from readline3 to readline4, so
|
---|
63 | # code will generate warnings on one of them unless we have a few
|
---|
64 | # special cases.
|
---|
65 | AC_CHECK_LIB(readline, rl_completion_matches,
|
---|
66 | [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
|
---|
67 | [Do we have rl_completion_matches?])],
|
---|
68 | [],
|
---|
69 | [$TERMLIBS])
|
---|
70 |
|
---|
71 | # not all readline libs have rl_event_hook or history_list
|
---|
72 | AC_CHECK_DECLS(rl_event_hook, [], [], [
|
---|
73 | #include <stdio.h>
|
---|
74 | #include <readline/readline.h>
|
---|
75 | ])
|
---|
76 | AC_CHECK_LIB(readline, history_list,
|
---|
77 | [AC_DEFINE(HAVE_HISTORY_LIST, 1, [Do we have history_list?])],
|
---|
78 | [],
|
---|
79 | [$TERMLIBS])
|
---|
80 |
|
---|
81 | AC_MSG_CHECKING(whether to use extern readline)
|
---|
82 | if test x"$EXTERNAL_READLINE" = x"yes"; then
|
---|
83 | AC_MSG_RESULT(yes)
|
---|
84 | AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
|
---|
85 | SMB_SUBSYSTEM(SMBREADLINE, [\$(smbreadlinesrcdir)/smbreadline.o], [READLINE])
|
---|
86 | SMB_EXT_LIB(READLINE, [${TERMLIBS}])
|
---|
87 | SMB_ENABLE(READLINE,YES)
|
---|
88 | else
|
---|
89 | SMB_SUBSYSTEM(SMBREADLINE, [\$(smbreadlinesrcdir)/smbreadline.o], [])
|
---|
90 | AC_MSG_RESULT(no)
|
---|
91 | fi
|
---|