AX_LIB_READLINE AX_LIB_READLINE([MIN-VERSION])
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.
If given, MIN-VERSION specifies the minimum acceptable version; if that version is not found, HAVE_LIBREADLINE and HAVE_READLINE_HISTORY will not be defined.
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 */
Download the latest version of ax_lib_readline.m4 or browse the macro’s revision history.
Copyright © 2024 Reuben Thomas rrt@sc3d.org
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. This file is offered as-is, without any warranty.