File:  [Coherent Logic Development] / freem / m4 / ax_lib_readline.m4
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Sun Jan 19 02:04:04 2025 UTC (6 months, 1 week ago) by snw
Branches: MAIN, CoherentLogicDevelopment
CVS tags: v0-63-1-rc1, v0-63-0-rc1, v0-63-0, v0-62-3, v0-62-2, v0-62-1, v0-62-0, start, HEAD
FreeM

    1: # ===========================================================================
    2: #     https://www.gnu.org/software/autoconf-archive/ax_lib_readline.html
    3: # ===========================================================================
    4: #
    5: # SYNOPSIS
    6: #
    7: #   AX_LIB_READLINE
    8: #
    9: # DESCRIPTION
   10: #
   11: #   Searches for a readline compatible library. If found, defines
   12: #   `HAVE_LIBREADLINE'. If the found library has the `add_history' function,
   13: #   sets also `HAVE_READLINE_HISTORY'. Also checks for the locations of the
   14: #   necessary include files and sets `HAVE_READLINE_H' or
   15: #   `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or
   16: #   'HAVE_HISTORY_H' if the corresponding include files exists.
   17: #
   18: #   The libraries that may be readline compatible are `libedit',
   19: #   `libeditline' and `libreadline'. Sometimes we need to link a termcap
   20: #   library for readline to work, this macro tests these cases too by trying
   21: #   to link with `libtermcap', `libcurses' or `libncurses' before giving up.
   22: #
   23: #   Here is an example of how to use the information provided by this macro
   24: #   to perform the necessary includes or declarations in a C file:
   25: #
   26: #     #ifdef HAVE_LIBREADLINE
   27: #     #  if defined(HAVE_READLINE_READLINE_H)
   28: #     #    include <readline/readline.h>
   29: #     #  elif defined(HAVE_READLINE_H)
   30: #     #    include <readline.h>
   31: #     #  else /* !defined(HAVE_READLINE_H) */
   32: #     extern char *readline ();
   33: #     #  endif /* !defined(HAVE_READLINE_H) */
   34: #     char *cmdline = NULL;
   35: #     #else /* !defined(HAVE_READLINE_READLINE_H) */
   36: #       /* no readline */
   37: #     #endif /* HAVE_LIBREADLINE */
   38: #
   39: #     #ifdef HAVE_READLINE_HISTORY
   40: #     #  if defined(HAVE_READLINE_HISTORY_H)
   41: #     #    include <readline/history.h>
   42: #     #  elif defined(HAVE_HISTORY_H)
   43: #     #    include <history.h>
   44: #     #  else /* !defined(HAVE_HISTORY_H) */
   45: #     extern void add_history ();
   46: #     extern int write_history ();
   47: #     extern int read_history ();
   48: #     #  endif /* defined(HAVE_READLINE_HISTORY_H) */
   49: #       /* no history */
   50: #     #endif /* HAVE_READLINE_HISTORY */
   51: #
   52: # LICENSE
   53: #
   54: #   Copyright (c) 2008 Ville Laurikari <vl@iki.fi>
   55: #
   56: #   Copying and distribution of this file, with or without modification, are
   57: #   permitted in any medium without royalty provided the copyright notice
   58: #   and this notice are preserved. This file is offered as-is, without any
   59: #   warranty.
   60: 
   61: #serial 8
   62: 
   63: AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE])
   64: AC_DEFUN([AX_LIB_READLINE], [
   65:   AC_CACHE_CHECK([for a readline compatible library],
   66:                  ax_cv_lib_readline, [
   67:     ORIG_LIBS="$LIBS"
   68:     for readline_lib in readline edit editline; do
   69:       for termcap_lib in "" termcap curses ncurses; do
   70:         if test -z "$termcap_lib"; then
   71:           TRY_LIB="-l$readline_lib"
   72:         else
   73:           TRY_LIB="-l$readline_lib -l$termcap_lib"
   74:         fi
   75:         LIBS="$ORIG_LIBS $TRY_LIB"
   76:         AC_LINK_IFELSE([AC_LANG_CALL([], [readline])], [ax_cv_lib_readline="$TRY_LIB"])
   77:         if test -n "$ax_cv_lib_readline"; then
   78:           break
   79:         fi
   80:       done
   81:       if test -n "$ax_cv_lib_readline"; then
   82:         break
   83:       fi
   84:     done
   85:     if test -z "$ax_cv_lib_readline"; then
   86:       ax_cv_lib_readline="no"
   87:     fi
   88:     LIBS="$ORIG_LIBS"
   89:   ])
   90: 
   91:   if test "$ax_cv_lib_readline" != "no"; then
   92:     LIBS="$LIBS $ax_cv_lib_readline"
   93:     AC_DEFINE(HAVE_LIBREADLINE, 1,
   94:               [Define if you have a readline compatible library])
   95:     AC_CHECK_HEADERS(readline.h readline/readline.h)
   96:     AC_CACHE_CHECK([whether readline supports history],
   97:                    ax_cv_lib_readline_history, [
   98:       ax_cv_lib_readline_history="no"
   99:       AC_LINK_IFELSE([AC_LANG_CALL([], [add_history])], [ax_cv_lib_readline_history="yes"])
  100:     ])
  101:     if test "$ax_cv_lib_readline_history" = "yes"; then
  102:       AC_DEFINE(HAVE_READLINE_HISTORY, 1,
  103:                 [Define if your readline library has \`add_history'])
  104:       AC_CHECK_HEADERS(history.h readline/history.h)
  105:     fi
  106:   fi
  107: ])dnl

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