| 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
|
|---|