summaryrefslogtreecommitdiff
path: root/sntp/m4/ntp_lineeditlibs.m4
diff options
context:
space:
mode:
Diffstat (limited to 'sntp/m4/ntp_lineeditlibs.m4')
-rw-r--r--sntp/m4/ntp_lineeditlibs.m4136
1 files changed, 136 insertions, 0 deletions
diff --git a/sntp/m4/ntp_lineeditlibs.m4 b/sntp/m4/ntp_lineeditlibs.m4
new file mode 100644
index 0000000..f86e617
--- /dev/null
+++ b/sntp/m4/ntp_lineeditlibs.m4
@@ -0,0 +1,136 @@
+AC_DEFUN([NTP_LINEEDITLIBS], [
+ NTP_ORIG_LIBS="$LIBS"
+ AC_ARG_WITH(
+ [lineeditlibs],
+ [AS_HELP_STRING(
+ [--with-lineeditlibs],
+ [edit,editline (readline may be specified if desired)]
+ )],
+ [use_lineeditlibs="$withval"],
+ [use_lineeditlibs="edit,editline"]
+ )
+ AC_MSG_CHECKING([line editing libraries])
+ AC_MSG_RESULT([$use_lineeditlibs])
+ case "$use_lineeditlibs" in
+ no)
+ ntp_lib_lineedit=no
+ ;;
+ *)
+ for lineedit_lib in `echo $use_lineeditlibs | sed -e 's/,/ /'`; do
+ for term_lib in "" termcap curses ncurses; do
+ case "$term_lib" in
+ '')
+ TRY_LIB="-l$lineedit_lib"
+ ;;
+ *)
+ TRY_LIB="-l$lineedit_lib -l$term_lib"
+ ;;
+ esac
+ LIBS="$NTP_ORIG_LIBS $TRY_LIB"
+ AC_MSG_CHECKING([for readline() with $TRY_LIB])
+ AC_TRY_LINK_FUNC([readline], [ntp_lib_lineedit="$TRY_LIB"])
+ case "$ntp_lib_lineedit" in
+ '')
+ AC_MSG_RESULT([no])
+ ;;
+ *)
+ # Use readline()
+ AC_MSG_RESULT([yes])
+ break
+ esac
+ case "$term_lib" in
+ '')
+ # do not try el_gets without a terminal library
+ ;;
+ *)
+ AC_MSG_CHECKING([for el_gets() with $TRY_LIB])
+ AC_TRY_LINK_FUNC([el_gets], [ntp_lib_lineedit="$TRY_LIB"])
+ case "$ntp_lib_lineedit" in
+ '')
+ AC_MSG_RESULT([no])
+ ;;
+ *) # Use el_gets()
+ AC_MSG_RESULT([yes])
+ break
+ ;;
+ esac # $ntp_lib_lineedit
+ esac # $term_lib
+ done
+ case "$ntp_lib_lineedit" in
+ '')
+ ;;
+ *)
+ break
+ ;;
+ esac
+ done
+ LIBS="$NTP_ORIG_LIBS"
+ ;;
+ esac # $use_lineeditlibs
+
+ case "$ntp_lib_lineedit" in
+ '')
+ ntp_lib_lineedit="no"
+ ;;
+ no)
+ ;;
+ *)
+ EDITLINE_LIBS="$ntp_lib_lineedit"
+ AC_SUBST([EDITLINE_LIBS])
+ ;;
+ esac # $ntp_lib_lineedit
+
+ case "$ntp_lib_lineedit" in
+ no)
+ ;;
+ *)
+ AC_CHECK_HEADERS([readline.h readline/readline.h histedit.h])
+ AC_CHECK_HEADERS([history.h readline/history.h])
+
+ case "$ac_cv_header_histedit_h" in
+ yes)
+ AC_CACHE_CHECK(
+ [number of arguments to el_init()],
+ [ntp_cv_el_init_args],
+ [AC_COMPILE_IFELSE(
+ [AC_LANG_PROGRAM(
+ [[
+ #include <stdio.h>
+ #include <histedit.h>
+ ]],
+ [[
+ el_init("conftest", stdin, stdout, stderr);
+ ]]
+ )],
+ [ntp_cv_el_init_args=4],
+ [ntp_cv_el_init_args=3]
+ )]
+ )
+ AC_DEFINE_UNQUOTED(
+ [EL_INIT_ARGS],
+ [$ntp_cv_el_init_args],
+ [number of args to el_init()]
+ )
+ esac
+
+ AC_MSG_CHECKING([whether readline supports history])
+
+ ntp_lib_lineedit_history="no"
+ ORIG_LIBS="$LIBS"
+ LIBS="$ORIG_LIBS $ntp_lib_lineedit"
+ AC_TRY_LINK_FUNC([add_history], [ntp_lib_lineedit_history="yes"])
+ LIBS="$ORIG_LIBS"
+
+ AC_MSG_RESULT([$ntp_lib_lineedit_history])
+
+ case "$ntp_lib_lineedit_history" in
+ yes)
+ AC_DEFINE([HAVE_READLINE_HISTORY], [1],
+ [Define if your readline library has \`add_history'])
+ esac
+ esac # $ntp_lib_lineedit
+ AS_UNSET([NTP_ORIG_LIBS])
+ AS_UNSET([ORIG_LIBS])
+ AS_UNSET([TRY_LIB])
+ AS_UNSET([use_lineeditlibs])
+])dnl