php-src/ext/readline/config.m4
Wez Furlong bbd6dec20c Add support for the readline callback interface, allowing you to interleave
IO and user input.  Sample script:

<?php
dl("readline.so");

function handle_user_input($line)
{
   echo "You typed: '$line'\n";
   if ($line == 'exit')
      exit;
}

readline_callback_handler_install('type! > ', 'handle_user_input');

while (true) {
   $n = stream_select($r = array(STDIN), $w = null, $e = null, null);

   if ($n && in_array(STDIN, $r)) {
      readline_callback_read_char();
   }
}
2004-08-24 12:52:07 +00:00

99 lines
2.5 KiB
Plaintext

dnl
dnl $Id$
dnl
PHP_ARG_WITH(libedit,for libedit readline replacement,
[ --with-libedit[=DIR] Include libedit readline replacement (CLI/CGI only).])
PHP_ARG_WITH(readline,for readline support,
[ --with-readline[=DIR] Include readline support (CLI/CGI only).])
if test "$PHP_READLINE" != "no"; then
for i in $PHP_READLINE /usr/local /usr; do
test -f $i/include/readline/readline.h && READLINE_DIR=$i && break
done
if test -z "$READLINE_DIR"; then
AC_MSG_ERROR(Please reinstall readline - I cannot find readline.h)
fi
PHP_ADD_INCLUDE($READLINE_DIR/include)
PHP_READLINE_LIBS=""
AC_CHECK_LIB(ncurses, tgetent,
[
PHP_ADD_LIBRARY(ncurses,,READLINE_SHARED_LIBADD)
PHP_READLINE_LIBS="$PHP_READLINE_LIBS -lncurses"
],[
AC_CHECK_LIB(termcap, tgetent,
[
PHP_ADD_LIBRARY(termcap,,READLINE_SHARED_LIBADD)
PHP_READLINE_LIBS="$PHP_READLINE_LIBS -ltermcap"
])
])
PHP_CHECK_LIBRARY(readline, readline,
[
PHP_ADD_LIBRARY_WITH_PATH(readline, $READLINE_DIR/lib, READLINE_SHARED_LIBADD)
], [
AC_MSG_ERROR(readline library not found)
], [
-L$READLINE_DIR/lib $PHP_READLINE_LIBS
])
PHP_CHECK_LIBRARY(readline, rl_callback_read_char,
[
AC_DEFINE(HAVE_RL_CALLBACK_READ_CHAR, 1, [ ])
],[],[
-L$READLINE_DIR/lib $PHP_READLINE_LIBS
])
PHP_CHECK_LIBRARY(history, add_history,
[
PHP_ADD_LIBRARY_WITH_PATH(history, $READLINE_DIR/lib, READLINE_SHARED_LIBADD)
], [
AC_MSG_ERROR(history library required by readline not found)
], [
-L$READLINE_DIR/lib $PHP_READLINE_LIBS
])
PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
PHP_SUBST(READLINE_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBREADLINE, 1, [ ])
elif test "$PHP_LIBEDIT" != "no"; then
for i in $PHP_LIBEDIT /usr/local /usr; do
test -f $i/include/readline/readline.h && LIBEDIT_DIR=$i && break
done
if test -z "$LIBEDIT_DIR"; then
AC_MSG_ERROR(Please reinstall libedit - I cannot find readline.h)
fi
PHP_ADD_INCLUDE($LIBEDIT_DIR/include)
AC_CHECK_LIB(ncurses, tgetent,
[
PHP_ADD_LIBRARY(ncurses,,READLINE_SHARED_LIBADD)
],[
AC_CHECK_LIB(termcap, tgetent,
[
PHP_ADD_LIBRARY(termcap,,READLINE_SHARED_LIBADD)
])
])
PHP_CHECK_LIBRARY(edit, readline,
[
PHP_ADD_LIBRARY_WITH_PATH(edit, $LIBEDIT_DIR/lib, READLINE_SHARED_LIBADD)
], [
AC_MSG_ERROR(edit library required by readline not found)
], [
-L$READLINE_DIR/lib
])
PHP_NEW_EXTENSION(readline, readline.c, $ext_shared, cli)
PHP_SUBST(READLINE_SHARED_LIBADD)
AC_DEFINE(HAVE_LIBEDIT, 1, [ ])
fi