Created
December 9, 2020 10:26
-
-
Save neheb/c17317ffaa6f69db5804dfa68728efb0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# =========================================================================== | |
# https://www.gnu.org/software/autoconf-archive/ax_lib_readline.html | |
# =========================================================================== | |
# | |
# SYNOPSIS | |
# | |
# AX_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 */ | |
# | |
# LICENSE | |
# | |
# Copyright (c) 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. | |
#serial 8 | |
AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE]) | |
AC_DEFUN([AX_LIB_READLINE], [ | |
AC_CACHE_CHECK([for a readline compatible library], | |
ax_cv_lib_readline, [ | |
ORIG_LIBS="$LIBS" | |
for readline_lib in readline edit editline; do | |
for termcap_lib in "" termcap curses ncurses; do | |
if test -z "$termcap_lib"; then | |
TRY_LIB="-l$readline_lib" | |
else | |
TRY_LIB="-l$readline_lib -l$termcap_lib" | |
fi | |
LIBS="$ORIG_LIBS $TRY_LIB" | |
AC_LINK_IFELSE([AC_LANG_CALL([], [readline])], [ax_cv_lib_readline="$TRY_LIB"]) | |
if test -n "$ax_cv_lib_readline"; then | |
break | |
fi | |
done | |
if test -n "$ax_cv_lib_readline"; then | |
break | |
fi | |
done | |
if test -z "$ax_cv_lib_readline"; then | |
ax_cv_lib_readline="no" | |
fi | |
LIBS="$ORIG_LIBS" | |
]) | |
if test "$ax_cv_lib_readline" != "no"; then | |
LIBS="$LIBS $ax_cv_lib_readline" | |
AC_DEFINE(HAVE_LIBREADLINE, 1, | |
[Define if you have a readline compatible library]) | |
AC_CHECK_HEADERS(readline.h readline/readline.h) | |
AC_CACHE_CHECK([whether readline supports history], | |
ax_cv_lib_readline_history, [ | |
ax_cv_lib_readline_history="no" | |
AC_LINK_IFELSE([AC_LANG_CALL([], [add_history])], [ax_cv_lib_readline_history="yes"]) | |
]) | |
if test "$ax_cv_lib_readline_history" = "yes"; then | |
AC_DEFINE(HAVE_READLINE_HISTORY, 1, | |
[Define if your readline library has \`add_history']) | |
AC_CHECK_HEADERS(history.h readline/history.h) | |
fi | |
fi | |
])dnl# =========================================================================== | |
# https://www.gnu.org/software/autoconf-archive/ax_lib_readline.html | |
# =========================================================================== | |
# | |
# SYNOPSIS | |
# | |
# AX_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 */ | |
# | |
# LICENSE | |
# | |
# Copyright (c) 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. | |
#serial 8 | |
AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE]) | |
AC_DEFUN([AX_LIB_READLINE], [ | |
AC_CACHE_CHECK([for a readline compatible library], | |
ax_cv_lib_readline, [ | |
ORIG_LIBS="$LIBS" | |
for readline_lib in readline edit editline; do | |
for termcap_lib in "" termcap curses ncurses; do | |
if test -z "$termcap_lib"; then | |
TRY_LIB="-l$readline_lib" | |
else | |
TRY_LIB="-l$readline_lib -l$termcap_lib" | |
fi | |
LIBS="$ORIG_LIBS $TRY_LIB" | |
AC_LINK_IFELSE([AC_LANG_CALL([], [readline])], [ax_cv_lib_readline="$TRY_LIB"]) | |
if test -n "$ax_cv_lib_readline"; then | |
break | |
fi | |
done | |
if test -n "$ax_cv_lib_readline"; then | |
break | |
fi | |
done | |
if test -z "$ax_cv_lib_readline"; then | |
ax_cv_lib_readline="no" | |
fi | |
LIBS="$ORIG_LIBS" | |
]) | |
if test "$ax_cv_lib_readline" != "no"; then | |
LIBS="$LIBS $ax_cv_lib_readline" | |
AC_DEFINE(HAVE_LIBREADLINE, 1, | |
[Define if you have a readline compatible library]) | |
AC_CHECK_HEADERS(readline.h readline/readline.h) | |
AC_CACHE_CHECK([whether readline supports history], | |
ax_cv_lib_readline_history, [ | |
ax_cv_lib_readline_history="no" | |
AC_LINK_IFELSE([AC_LANG_CALL([], [add_history])], [ax_cv_lib_readline_history="yes"]) | |
]) | |
if test "$ax_cv_lib_readline_history" = "yes"; then | |
AC_DEFINE(HAVE_READLINE_HISTORY, 1, | |
[Define if your readline library has \`add_history']) | |
AC_CHECK_HEADERS(history.h readline/history.h) | |
fi | |
fi | |
])dnl |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment