]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - contrib/ntp/sntp/m4/ntp_lineeditlibs.m4
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / contrib / ntp / sntp / m4 / ntp_lineeditlibs.m4
1 AC_DEFUN([NTP_LINEEDITLIBS], [
2     NTP_ORIG_LIBS="$LIBS"
3     AC_ARG_WITH(
4         [lineeditlibs],
5         [AS_HELP_STRING(
6             [--with-lineeditlibs],
7             [edit,editline (readline may be specified if desired)]
8         )],
9         [use_lineeditlibs="$withval"],
10         [use_lineeditlibs="edit,editline"]
11     )
12     AC_MSG_CHECKING([line editing libraries])
13     AC_MSG_RESULT([$use_lineeditlibs])
14     case "$use_lineeditlibs" in
15      no) 
16         ntp_lib_lineedit=no
17         ;;
18      *)
19         for lineedit_lib in `echo $use_lineeditlibs | sed -e 's/,/ /'`; do
20             for term_lib in "" termcap curses ncurses; do
21                 case "$term_lib" in
22                  '') 
23                     TRY_LIB="-l$lineedit_lib"
24                     ;;
25                  *)
26                     TRY_LIB="-l$lineedit_lib -l$term_lib"
27                     ;;
28                 esac
29                 LIBS="$NTP_ORIG_LIBS $TRY_LIB"
30                 AC_MSG_CHECKING([for readline() with $TRY_LIB])
31                 AC_TRY_LINK_FUNC([readline], [ntp_lib_lineedit="$TRY_LIB"])
32                 case "$ntp_lib_lineedit" in
33                  '')
34                     AC_MSG_RESULT([no])
35                     ;;
36                  *) 
37                     # Use readline()
38                     AC_MSG_RESULT([yes])
39                     break
40                 esac
41                 case "$term_lib" in
42                  '')
43                     # do not try el_gets without a terminal library
44                     ;;
45                  *)
46                     AC_MSG_CHECKING([for el_gets() with $TRY_LIB])
47                     AC_TRY_LINK_FUNC([el_gets], [ntp_lib_lineedit="$TRY_LIB"])
48                     case "$ntp_lib_lineedit" in
49                      '')
50                         AC_MSG_RESULT([no])
51                         ;;
52                      *) # Use el_gets()
53                         AC_MSG_RESULT([yes])
54                         break
55                         ;;
56                     esac        # $ntp_lib_lineedit
57                 esac            # $term_lib
58             done
59             case "$ntp_lib_lineedit" in
60              '')
61                 ;;
62              *)
63                 break
64                 ;;
65             esac
66         done
67         LIBS="$NTP_ORIG_LIBS"
68         ;;
69     esac        # $use_lineeditlibs
70
71     case "$ntp_lib_lineedit" in
72      '')
73         ntp_lib_lineedit="no"
74         ;;
75      no)
76         ;;
77      *)
78         EDITLINE_LIBS="$ntp_lib_lineedit"
79         AC_SUBST([EDITLINE_LIBS])
80         ;;
81     esac        # $ntp_lib_lineedit
82
83     case "$ntp_lib_lineedit" in
84      no)
85         ;;
86      *)
87         AC_CHECK_HEADERS([readline.h readline/readline.h histedit.h])
88         AC_CHECK_HEADERS([history.h readline/history.h])
89
90         case "$ac_cv_header_histedit_h" in
91          yes)
92             AC_CACHE_CHECK(
93                 [number of arguments to el_init()],
94                 [ntp_cv_el_init_args],
95                 [AC_COMPILE_IFELSE(
96                     [AC_LANG_PROGRAM(
97                         [[
98                             #include <stdio.h>
99                             #include <histedit.h>
100                         ]],
101                         [[
102                             el_init("conftest", stdin, stdout, stderr);
103                         ]]
104                     )],
105                     [ntp_cv_el_init_args=4],
106                     [ntp_cv_el_init_args=3]
107                 )]
108             )
109             AC_DEFINE_UNQUOTED(
110                 [EL_INIT_ARGS], 
111                 [$ntp_cv_el_init_args],
112                 [number of args to el_init()]
113                 )
114         esac
115         
116         AC_MSG_CHECKING([whether readline supports history])
117         
118         ntp_lib_lineedit_history="no"
119         ORIG_LIBS="$LIBS"
120         LIBS="$ORIG_LIBS $ntp_lib_lineedit"
121         AC_TRY_LINK_FUNC([add_history], [ntp_lib_lineedit_history="yes"])
122         LIBS="$ORIG_LIBS"
123
124         AC_MSG_RESULT([$ntp_lib_lineedit_history])
125
126         case "$ntp_lib_lineedit_history" in
127          yes)
128             AC_DEFINE([HAVE_READLINE_HISTORY], [1],
129                 [Define if your readline library has \`add_history'])
130         esac
131     esac        # $ntp_lib_lineedit
132     AS_UNSET([NTP_ORIG_LIBS])
133     AS_UNSET([ORIG_LIBS])
134     AS_UNSET([TRY_LIB])
135     AS_UNSET([use_lineeditlibs])
136 ])dnl