File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / ntp / m4 / ntp_lineeditlibs.m4
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue May 29 12:08:38 2012 UTC (12 years, 7 months ago) by misho
CVS tags: MAIN, HEAD
Initial revision

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>