Macros by Category Revision History
Search:

vl_lib_readline

SYNOPSIS

VL_LIB_READLINE

DESCRIPTION

Searches for a readline compatible library. If found, defines `HAVE_LIBREADLINE'. If the found library has the `add_history' function, sets also `HAVE_READLINE_HISTORY'. Also checks for the locations of the necessary include files and sets `HAVE_READLINE_H' or `HAVE_READLINE_READLINE_H' and `HAVE_READLINE_HISTORY_H' or 'HAVE_HISTORY_H' if the corresponding include files exists.

The libraries that may be readline compatible are `libedit', `libeditline' and `libreadline'. Sometimes we need to link a termcap library for readline to work, this macro tests these cases too by trying to link with `libtermcap', `libcurses' or `libncurses' before giving up.

Here is an example of how to use the information provided by this macro to perform the necessary includes or declarations in a C file:

  #ifdef HAVE_LIBREADLINE
  #  if defined(HAVE_READLINE_READLINE_H)
  #    include <readline/readline.h>
  #  elif defined(HAVE_READLINE_H)
  #    include <readline.h>
  #  else /* !defined(HAVE_READLINE_H) */
  extern char *readline ();
  #  endif /* !defined(HAVE_READLINE_H) */
  char *cmdline = NULL;
  #else /* !defined(HAVE_READLINE_READLINE_H) */
    /* no readline */
  #endif /* HAVE_LIBREADLINE */

  #ifdef HAVE_READLINE_HISTORY
  #  if defined(HAVE_READLINE_HISTORY_H)
  #    include <readline/history.h>
  #  elif defined(HAVE_HISTORY_H)
  #    include <history.h>
  #  else /* !defined(HAVE_HISTORY_H) */
  extern void add_history ();
  extern int write_history ();
  extern int read_history ();
  #  endif /* defined(HAVE_READLINE_HISTORY_H) */
    /* no history */
  #endif /* HAVE_READLINE_HISTORY */

SOURCE CODE

http://autoconf-archive.cryp.to/vl_lib_readline.m4

LICENSE

Copyright © 2008 Ville Laurikari <vl@iki.fi>

Copying and distribution of this file, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved.