Collection of DPF-based plugins for packaging
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

108 lines
3.8KB

  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. #serial 7
  61. AU_ALIAS([VL_LIB_READLINE], [AX_LIB_READLINE])
  62. AC_DEFUN([AX_LIB_READLINE], [
  63. AC_CACHE_CHECK([for a readline compatible library],
  64. ax_cv_lib_readline, [
  65. ORIG_LIBS="$LIBS"
  66. for readline_lib in readline edit editline; do
  67. for termcap_lib in "" termcap curses ncurses; do
  68. if test -z "$termcap_lib"; then
  69. TRY_LIB="-l$readline_lib"
  70. else
  71. TRY_LIB="-l$readline_lib -l$termcap_lib"
  72. fi
  73. LIBS="$ORIG_LIBS $TRY_LIB"
  74. AC_TRY_LINK_FUNC(readline, ax_cv_lib_readline="$TRY_LIB")
  75. if test -n "$ax_cv_lib_readline"; then
  76. break
  77. fi
  78. done
  79. if test -n "$ax_cv_lib_readline"; then
  80. break
  81. fi
  82. done
  83. if test -z "$ax_cv_lib_readline"; then
  84. ax_cv_lib_readline="no"
  85. fi
  86. LIBS="$ORIG_LIBS"
  87. ])
  88. if test "$ax_cv_lib_readline" != "no"; then
  89. LIBS="$LIBS $ax_cv_lib_readline"
  90. AC_DEFINE(HAVE_LIBREADLINE, 1,
  91. [Define if you have a readline compatible library])
  92. AC_CHECK_HEADERS(readline.h readline/readline.h)
  93. AC_CACHE_CHECK([whether readline supports history],
  94. ax_cv_lib_readline_history, [
  95. ax_cv_lib_readline_history="no"
  96. AC_TRY_LINK_FUNC(add_history, ax_cv_lib_readline_history="yes")
  97. ])
  98. if test "$ax_cv_lib_readline_history" = "yes"; then
  99. AC_DEFINE(HAVE_READLINE_HISTORY, 1,
  100. [Define if your readline library has \`add_history'])
  101. AC_CHECK_HEADERS(history.h readline/history.h)
  102. fi
  103. fi
  104. ])dnl