ntp_lineeditlibs.m4 revision 275970
1119452SobrienAC_DEFUN([NTP_LINEEDITLIBS], [
2101225Sphk    NTP_ORIG_LIBS="$LIBS"
3101225Sphk    AC_ARG_WITH(
4101225Sphk	[lineeditlibs],
5101225Sphk	[AS_HELP_STRING(
6101225Sphk	    [--with-lineeditlibs],
7101225Sphk	    [edit,editline (readline may be specified if desired)]
8101225Sphk	)],
9101225Sphk	[use_lineeditlibs="$withval"],
10102934Sphk	[use_lineeditlibs="edit,editline"]
11102934Sphk    )
12102934Sphk    AC_MSG_CHECKING([line editing libraries])
13102934Sphk    AC_MSG_RESULT([$use_lineeditlibs])
14102934Sphk    case "$use_lineeditlibs" in
15102934Sphk     no) 
16102934Sphk	ntp_lib_lineedit=no
17102934Sphk	;;
18102934Sphk     *)
19109327Sphk	for lineedit_lib in `echo $use_lineeditlibs | sed -e 's/,/ /'`; do
20109327Sphk	    for term_lib in "" termcap curses ncurses; do
21109327Sphk		case "$term_lib" in
22109327Sphk		 '') 
23109327Sphk		    TRY_LIB="-l$lineedit_lib"
24109327Sphk		    ;;
25109327Sphk		 *)
26109327Sphk		    TRY_LIB="-l$lineedit_lib -l$term_lib"
27101225Sphk		    ;;
28102934Sphk		esac
29115683Sobrien		LIBS="$NTP_ORIG_LIBS $TRY_LIB"
30115683Sobrien		AC_MSG_CHECKING([for readline() with $TRY_LIB])
31115683Sobrien		AC_TRY_LINK_FUNC([readline], [ntp_lib_lineedit="$TRY_LIB"])
32111138Sphk		case "$ntp_lib_lineedit" in
33101225Sphk		 '')
34101225Sphk		    AC_MSG_RESULT([no])
35101225Sphk		    ;;
36101225Sphk		 *) 
37102934Sphk		    # Use readline()
38102934Sphk		    AC_MSG_RESULT([yes])
39102934Sphk		    break
40103482Sphk		esac
41103482Sphk		case "$term_lib" in
42103482Sphk		 '')
43103482Sphk		    # do not try el_gets without a terminal library
44109327Sphk		    ;;
45109327Sphk		 *)
46111647Sphk		    AC_MSG_CHECKING([for el_gets() with $TRY_LIB])
47101225Sphk		    AC_TRY_LINK_FUNC([el_gets], [ntp_lib_lineedit="$TRY_LIB"])
48101225Sphk		    case "$ntp_lib_lineedit" in
49101225Sphk		     '')
50102934Sphk			AC_MSG_RESULT([no])
51102934Sphk			;;
52102934Sphk		     *) # Use el_gets()
53102934Sphk			AC_MSG_RESULT([yes])
54102934Sphk			break
55103482Sphk			;;
56103482Sphk		    esac	# $ntp_lib_lineedit
57103482Sphk		esac		# $term_lib
58103482Sphk	    done
59103482Sphk	    case "$ntp_lib_lineedit" in
60102935Sphk	     '')
61109327Sphk		;;
62109327Sphk	     *)
63109327Sphk		break
64109327Sphk		;;
65109327Sphk	    esac
66109327Sphk	done
67109327Sphk	LIBS="$NTP_ORIG_LIBS"
68109327Sphk	;;
69109327Sphk    esac	# $use_lineeditlibs
70109327Sphk
71109327Sphk    case "$ntp_lib_lineedit" in
72109327Sphk     '')
73109327Sphk	ntp_lib_lineedit="no"
74109327Sphk	;;
75109327Sphk     no)
76109327Sphk	;;
77109327Sphk     *)
78109327Sphk	EDITLINE_LIBS="$ntp_lib_lineedit"
79109327Sphk	AC_SUBST([EDITLINE_LIBS])
80109327Sphk	;;
81109327Sphk    esac	# $ntp_lib_lineedit
82109327Sphk
83109327Sphk    case "$ntp_lib_lineedit" in
84109327Sphk     no)
85102935Sphk	;;
86102935Sphk     *)
87102935Sphk	AC_CHECK_HEADERS([readline.h readline/readline.h histedit.h])
88102935Sphk	AC_CHECK_HEADERS([history.h readline/history.h])
89102935Sphk
90102935Sphk	case "$ac_cv_header_histedit_h" in
91109327Sphk	 yes)
92109327Sphk	    AC_CACHE_CHECK(
93109327Sphk		[number of arguments to el_init()],
94109327Sphk		[ntp_cv_el_init_args],
95109327Sphk		[AC_COMPILE_IFELSE(
96109327Sphk		    [AC_LANG_PROGRAM(
97109327Sphk			[[
98109327Sphk			    #include <stdio.h>
99102935Sphk			    #include <histedit.h>
100102935Sphk			]],
101109327Sphk			[[
102102935Sphk			    el_init("conftest", stdin, stdout, stderr);
103109327Sphk			]]
104102935Sphk		    )],
105102935Sphk		    [ntp_cv_el_init_args=4],
106102935Sphk		    [ntp_cv_el_init_args=3]
107109327Sphk		)]
108109327Sphk	    )
109109327Sphk	    AC_DEFINE_UNQUOTED(
110109327Sphk		[EL_INIT_ARGS], 
111109327Sphk		[$ntp_cv_el_init_args],
112109327Sphk		[number of args to el_init()]
113109327Sphk		)
114109327Sphk	esac
115109327Sphk	
116109327Sphk	AC_MSG_CHECKING([whether readline supports history])
117109327Sphk	
118109327Sphk	ntp_lib_lineedit_history="no"
119109327Sphk	ORIG_LIBS="$LIBS"
120109327Sphk	LIBS="$ORIG_LIBS $ntp_lib_lineedit"
121109327Sphk	AC_TRY_LINK_FUNC([add_history], [ntp_lib_lineedit_history="yes"])
122109327Sphk	LIBS="$ORIG_LIBS"
123102934Sphk
124102934Sphk	AC_MSG_RESULT([$ntp_lib_lineedit_history])
125102934Sphk
126102934Sphk	case "$ntp_lib_lineedit_history" in
127102934Sphk	 yes)
128102934Sphk	    AC_DEFINE([HAVE_READLINE_HISTORY], [1],
129103168Ssam		[Define if your readline library has \`add_history'])
130103168Ssam	esac
131102934Sphk    esac	# $ntp_lib_lineedit
132102934Sphk    AS_UNSET([NTP_ORIG_LIBS])
133102934Sphk    AS_UNSET([ORIG_LIBS])
134102934Sphk    AS_UNSET([TRY_LIB])
135102934Sphk    AS_UNSET([use_lineeditlibs])
136102934Sphk])dnl
137102934Sphk