config.m4 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. dnl config.m4 for extension readline
  2. PHP_ARG_WITH(libedit,for libedit readline replacement,
  3. [ --with-libedit[=DIR] Include libedit readline replacement (CLI/CGI only)])
  4. if test "$PHP_LIBEDIT" = "no"; then
  5. PHP_ARG_WITH(readline,for readline support,
  6. [ --with-readline[=DIR] Include readline support (CLI/CGI only)])
  7. else
  8. dnl "register" the --with-readline option to preven invalid "unknown configure option" warning
  9. php_with_readline=no
  10. fi
  11. if test "$PHP_READLINE" && test "$PHP_READLINE" != "no"; then
  12. for i in $PHP_READLINE /usr/local /usr; do
  13. test -f $i/include/readline/readline.h && READLINE_DIR=$i && break
  14. done
  15. if test -z "$READLINE_DIR"; then
  16. AC_MSG_ERROR(Please reinstall readline - I cannot find readline.h)
  17. fi
  18. PHP_ADD_INCLUDE($READLINE_DIR/include)
  19. PHP_READLINE_LIBS=""
  20. AC_CHECK_LIB(ncurses, tgetent,
  21. [
  22. PHP_ADD_LIBRARY(ncurses,,READLINE_SHARED_LIBADD)
  23. PHP_READLINE_LIBS="$PHP_READLINE_LIBS -lncurses"
  24. ],[
  25. AC_CHECK_LIB(termcap, tgetent,
  26. [
  27. PHP_ADD_LIBRARY(termcap,,READLINE_SHARED_LIBADD)
  28. PHP_READLINE_LIBS="$PHP_READLINE_LIBS -ltermcap"
  29. ])
  30. ])
  31. PHP_CHECK_LIBRARY(readline, readline,
  32. [
  33. PHP_ADD_LIBRARY_WITH_PATH(readline, $READLINE_DIR/$PHP_LIBDIR, READLINE_SHARED_LIBADD)
  34. ], [
  35. AC_MSG_ERROR(readline library not found)
  36. ], [
  37. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  38. ])
  39. PHP_CHECK_LIBRARY(readline, rl_pending_input,
  40. [], [
  41. AC_MSG_ERROR([invalid readline installation detected. Try --with-libedit instead.])
  42. ], [
  43. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  44. ])
  45. PHP_CHECK_LIBRARY(readline, rl_callback_read_char,
  46. [
  47. AC_DEFINE(HAVE_RL_CALLBACK_READ_CHAR, 1, [ ])
  48. ],[],[
  49. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  50. ])
  51. PHP_CHECK_LIBRARY(readline, rl_on_new_line,
  52. [
  53. AC_DEFINE(HAVE_RL_ON_NEW_LINE, 1, [ ])
  54. ],[],[
  55. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  56. ])
  57. PHP_CHECK_LIBRARY(readline, rl_completion_matches,
  58. [
  59. AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, [ ])
  60. ],[],[
  61. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  62. ])
  63. AC_DEFINE(HAVE_LIBREADLINE, 1, [ ])
  64. elif test "$PHP_LIBEDIT" != "no"; then
  65. for i in $PHP_LIBEDIT /usr/local /usr; do
  66. test -f $i/include/editline/readline.h && LIBEDIT_DIR=$i && break
  67. done
  68. if test -z "$LIBEDIT_DIR"; then
  69. AC_MSG_ERROR(Please reinstall libedit - I cannot find readline.h)
  70. fi
  71. PHP_ADD_INCLUDE($LIBEDIT_DIR/include)
  72. AC_CHECK_LIB(ncurses, tgetent,
  73. [
  74. PHP_ADD_LIBRARY(ncurses,,READLINE_SHARED_LIBADD)
  75. ],[
  76. AC_CHECK_LIB(termcap, tgetent,
  77. [
  78. PHP_ADD_LIBRARY(termcap,,READLINE_SHARED_LIBADD)
  79. ])
  80. ])
  81. PHP_CHECK_LIBRARY(edit, readline,
  82. [
  83. PHP_ADD_LIBRARY_WITH_PATH(edit, $LIBEDIT_DIR/$PHP_LIBDIR, READLINE_SHARED_LIBADD)
  84. ], [
  85. AC_MSG_ERROR(edit library required by readline not found)
  86. ], [
  87. -L$READLINE_DIR/$PHP_LIBDIR
  88. ])
  89. PHP_CHECK_LIBRARY(edit, rl_callback_read_char,
  90. [
  91. AC_DEFINE(HAVE_RL_CALLBACK_READ_CHAR, 1, [ ])
  92. ],[],[
  93. -L$READLINE_DIR/$PHP_LIBDIR
  94. ])
  95. PHP_CHECK_LIBRARY(edit, rl_on_new_line,
  96. [
  97. AC_DEFINE(HAVE_RL_ON_NEW_LINE, 1, [ ])
  98. ],[],[
  99. -L$READLINE_DIR/$PHP_LIBDIR
  100. ])
  101. PHP_CHECK_LIBRARY(edit, rl_completion_matches,
  102. [
  103. AC_DEFINE(HAVE_RL_COMPLETION_MATCHES, 1, [ ])
  104. ],[],[
  105. -L$READLINE_DIR/$PHP_LIBDIR $PHP_READLINE_LIBS
  106. ])
  107. AC_DEFINE(HAVE_LIBEDIT, 1, [ ])
  108. fi
  109. if test "$PHP_READLINE" != "no" || test "$PHP_LIBEDIT" != "no"; then
  110. PHP_NEW_EXTENSION(readline, readline.c readline_cli.c, $ext_shared, cli)
  111. PHP_SUBST(READLINE_SHARED_LIBADD)
  112. fi