config.m4 3.6 KB

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