summaryrefslogtreecommitdiff
path: root/source4/lib/smbreadline/readline.m4
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2006-05-03 09:07:38 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:05:33 -0500
commit72a5cbadc1498b58bc7873a450de4b50e322a676 (patch)
tree6f369b9d1ff46e0c7b662873e9aea697bb14635b /source4/lib/smbreadline/readline.m4
parent9177f9cf0961468342dded643be535fc427d2667 (diff)
downloadsamba-72a5cbadc1498b58bc7873a450de4b50e322a676.tar.gz
samba-72a5cbadc1498b58bc7873a450de4b50e322a676.tar.bz2
samba-72a5cbadc1498b58bc7873a450de4b50e322a676.zip
r15406: Move 'smbreadline' out of libreplace as it doesn't replace functionality
not available on some platforms but is a Samba-specific library. (This used to be commit e9d3660fa6678424e5159708a1aa572824926c8e)
Diffstat (limited to 'source4/lib/smbreadline/readline.m4')
-rw-r--r--source4/lib/smbreadline/readline.m481
1 files changed, 81 insertions, 0 deletions
diff --git a/source4/lib/smbreadline/readline.m4 b/source4/lib/smbreadline/readline.m4
new file mode 100644
index 0000000000..cff7ece126
--- /dev/null
+++ b/source4/lib/smbreadline/readline.m4
@@ -0,0 +1,81 @@
+###############################################
+# Readline included by default unless explicitly asked not to
+test "${with_readline+set}" != "set" && with_readline=yes
+
+EXTERNAL_READLINE=no
+# test for where we get readline() from
+AC_MSG_CHECKING(whether to use readline)
+AC_ARG_WITH(readline,
+[ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
+[ case "$with_readline" in
+ yes)
+ AC_MSG_RESULT(yes)
+
+ AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
+ AC_CHECK_HEADERS(readline/history.h)
+
+ AC_CHECK_HEADERS(readline.h readline/readline.h,[
+ for termlib in ncurses curses termcap terminfo termlib tinfo; do
+ AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
+ done
+ AC_CHECK_LIB(readline, rl_callback_handler_install,
+ [TERMLIBS="-lreadline $TERMLIBS"
+ EXTERNAL_READLINE=yes
+ break], [TERMLIBS=], $TERMLIBS)])
+ ;;
+ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ AC_MSG_RESULT(yes)
+
+ # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
+ # alternate readline path
+ _ldflags=${LDFLAGS}
+ _cppflags=${CPPFLAGS}
+
+ # Add additional search path
+ LDFLAGS="-L$with_readline/lib $LDFLAGS"
+ CPPFLAGS="-I$with_readline/include $CPPFLAGS"
+
+ AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
+ AC_CHECK_HEADERS(readline/history.h)
+
+ AC_CHECK_HEADERS(readline.h readline/readline.h,[
+ for termlib in ncurses curses termcap terminfo termlib; do
+ AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
+ done
+ AC_CHECK_LIB(readline, rl_callback_handler_install,
+ [TERMLDFLAGS="-L$with_readline/lib"
+ TERMCPPFLAGS="-I$with_readline/include"
+ LDFLAGS="-L$with_readline/lib $LDFLAGS"
+ CPPFLAGS="-I$with_readline/include $CPPFLAGS"
+ TERMLIBS="-lreadline $TERMLIBS"
+ EXTERNAL_READLINE=yes
+ break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
+
+ ;;
+ esac],
+ AC_MSG_RESULT(no)
+)
+
+# The readline API changed slightly from readline3 to readline4, so
+# code will generate warnings on one of them unless we have a few
+# special cases.
+AC_CHECK_LIB(readline, rl_completion_matches,
+ [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
+ [Do we have rl_completion_matches?])],
+ [],
+ [$TERMLIBS])
+
+AC_MSG_CHECKING(whether to use extern readline)
+if test x"$EXTERNAL_READLINE" = x"yes"; then
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
+ SMB_SUBSYSTEM(SMBREADLINE, [lib/smbreadline/smbreadline.o], [READLINE])
+ SMB_EXT_LIB(READLINE, [${TERMLIBS}])
+ SMB_ENABLE(READLINE,YES)
+else
+ SMB_SUBSYSTEM(SMBREADLINE, [lib/smbreadline/smbreadline.o], [])
+ AC_MSG_RESULT(no)
+fi