Macros by Category | Revision History |
VL_LIB_READLINE
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 */
http://autoconf-archive.cryp.to/vl_lib_readline.m4
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.