Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,17 @@
handlersocket extension changelog

Version 0.3.1
-------------
* Added support PHP 5.4.x.

Version 0.3.0
-------------
* Added auth method.
* Added HandlerSocketIndex class.
* Added config.m4 : [disble-handlersocket-libhsclient].
* Added handlersocket.c : native implemented. (used PHP streams)
* Added compatible with Windows. (native implemented version)

Version 0.2.0
-------------
* Updated implemented IN.
Expand Down
194 changes: 111 additions & 83 deletions config.m4
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ if test -z "$tmp_version"; then
fi
php_version=`$PHP_CONFIG --version 2> /dev/null | head -n 1 | sed -e 's#\([0-9]\.[0-9]*\.[0-9]*\)\(.*\)#\1#'`
else
php_version=`echo "$VERSION" | sed -e 's#\([0-9]\.[0-9]*\.[0-9]*\)\(.*\)#\1#'`
php_version=`echo "$PHP_VERSION" | sed -e 's#\([0-9]\.[0-9]*\.[0-9]*\)\(.*\)#\1#'`
fi

if test -z "$php_version"; then
Expand All @@ -39,97 +39,125 @@ PHP_ARG_WITH(handlersocket, for handlersocket support,
Make sure that the comment is aligned:
[ --with-handlersocket Include handlersocket support])

dnl compiler C++:
if test "$PHP_HANDLERSOCKET" != "no"; then

PHP_REQUIRE_CXX()
dnl Check use hsclient

dnl HandlerSocket include dir
PHP_ARG_ENABLE(handlersocket-hsclient, whether to enable handlersocket hsclient,
[ --disable-handlersocket-hsclient Disable hsclient], yes, no)

PHP_ARG_WITH(handlersocket-includedir, for handlersocket header,
[ --with-handlersocket-includedir=DIR handlersocket header files], yes)
if test "$PHP_HANDLERSOCKET_HSCLIENT" != "no"; then

if test "$PHP_HANDLERSOCKET" != "no"; then
dnl # check with-path
dnl compiler C++:

PHP_REQUIRE_CXX()

dnl HandlerSocket include dir

if test "$PHP_HANDLERSOCKET_INCLUDEDIR" != "no" && test "$PHP_HANDLERSOCKET_INCLUDEDIR" != "yes"; then
if test -r "$PHP_HANDLERSOCKET_INCLUDEDIR/hstcpcli.hpp"; then
HANDLERSOCKET_DIR="$PHP_HANDLERSOCKET_INCLUDEDIR"
PHP_ARG_WITH(handlersocket-includedir, for handlersocket header,
[ --with-handlersocket-includedir=DIR handlersocket header files], yes)

if test "$PHP_HANDLERSOCKET_INCLUDEDIR" != "no" && test "$PHP_HANDLERSOCKET_INCLUDEDIR" != "yes"; then
if test -r "$PHP_HANDLERSOCKET_INCLUDEDIR/hstcpcli.hpp"; then
HANDLERSOCKET_DIR="$PHP_HANDLERSOCKET_INCLUDEDIR"
else
AC_MSG_ERROR([Can't find handlersocket headers under "$PHP_HANDLERSOCKET_INCLUDEDIR"])
fi
else
AC_MSG_ERROR([Can't find handlersocket headers under "$PHP_HANDLERSOCKET_INCLUDEDIR"])
SEARCH_PATH="/usr/local /usr"
SEARCH_FOR="/include/handlersocket/hstcpcli.hpp"
if test -r $PHP_HANDLERSOCKET/$SEARCH_FOR; then
HANDLERSOCKET_DIR="$PHP_HANDLERSOCKET/include/handlersocket"
else
AC_MSG_CHECKING([for hsclient files in default path])
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
HANDLERSOCKET_DIR="$i/include/handlersocket"
AC_MSG_RESULT(found in $i)
fi
done
fi
fi
else
SEARCH_PATH="/usr/local /usr" # you might want to change this
SEARCH_FOR="/include/handlersocket/hstcpcli.hpp" # you most likely want to change this
if test -r $PHP_HANDLERSOCKET/$SEARCH_FOR; then # path given as parameter
HANDLERSOCKET_DIR="$PHP_HANDLERSOCKET/include/handlersocket"
else # search default path list
AC_MSG_CHECKING([for hsclient files in default path])
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
HANDLERSOCKET_DIR="$i/include/handlersocket"
AC_MSG_RESULT(found in $i)
fi
done

if test -z "$HANDLERSOCKET_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Can't find hsclient headers])
fi
fi

if test -z "$HANDLERSOCKET_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Can't find hsclient headers])
PHP_ADD_INCLUDE($HANDLERSOCKET_DIR)

dnl Check for lib

LIBNAME=hsclient
AC_MSG_CHECKING([for hsclient])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(
[
#include "$HANDLERSOCKET_DIR/hstcpcli.hpp"
],[
dena::hstcpcli_ptr cli;
],[
AC_MSG_RESULT(yes)
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $HANDLERSOCKET_DIR/lib, HANDLERSOCKET_SHARED_LIBADD)
AC_DEFINE(HAVE_HANDLERSOCKETLIB,1,[ ])
],[
AC_MSG_RESULT([error])
AC_MSG_ERROR([wrong hsclient lib version or lib not found : $HANDLERSOCKET_DIR])
])
AC_LANG_RESTORE

dnl Check for stdc++
LIBNAME=stdc++
AC_MSG_CHECKING([for stdc++])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(
[
#include <string>
using namespace std;
],[
string dummy;
],[
AC_MSG_RESULT(yes)
PHP_ADD_LIBRARY($LIBNAME, , HANDLERSOCKET_SHARED_LIBADD)
],[
AC_MSG_ERROR([wrong stdc++ lib version or lib not found])
])
AC_LANG_RESTORE

PHP_SUBST(HANDLERSOCKET_SHARED_LIBADD)

dnl Extension files (hsclient)

ifdef([PHP_INSTALL_HEADERS],
[
PHP_INSTALL_HEADERS([ext/handlersocket], [php_handlersocket.h])
], [
PHP_ADD_MAKEFILE_FRAGMENT
])

PHP_NEW_EXTENSION(handlersocket, handlersocket.cc, $ext_shared)
else

dnl Extension files (native)

ifdef([PHP_INSTALL_HEADERS],
[
PHP_INSTALL_HEADERS([ext/handlersocket], [php_handlersocket.h])
], [
PHP_ADD_MAKEFILE_FRAGMENT
])

PHP_NEW_EXTENSION(handlersocket, handlersocket.c, $ext_shared)
fi
fi

dnl debug:

PHP_ARG_ENABLE(handlersocket-debug, whether to enable handlersocket debug mode,
[ --enable-handlersocket-debug Enable handlersocket debug mode], no, no)

dnl # add include path

PHP_ADD_INCLUDE($HANDLERSOCKET_DIR)

dnl # check for lib

LIBNAME=hsclient
AC_MSG_CHECKING([for hsclient])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(
[
#include "$HANDLERSOCKET_DIR/hstcpcli.hpp"
],[
dena::hstcpcli_ptr cli;
],[
AC_MSG_RESULT(yes)
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $HANDLERSOCKET_DIR/lib, HANDLERSOCKET_SHARED_LIBADD)
AC_DEFINE(HAVE_HANDLERSOCKETLIB,1,[ ])
],[
AC_MSG_RESULT([error])
AC_MSG_ERROR([wrong hsclient lib version or lib not found : $HANDLERSOCKET_DIR])
])
AC_LANG_RESTORE

dnl # check for stdc++
LIBNAME=stdc++
AC_MSG_CHECKING([for stdc++])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE(
[
#include <string>
using namespace std;
],[
string dummy;
],[
AC_MSG_RESULT(yes)
PHP_ADD_LIBRARY($LIBNAME, , HANDLERSOCKET_SHARED_LIBADD)
],[
AC_MSG_ERROR([wrong stdc++ lib version or lib not found])
])
AC_LANG_RESTORE

PHP_SUBST(HANDLERSOCKET_SHARED_LIBADD)

ifdef([PHP_INSTALL_HEADERS],
[
PHP_INSTALL_HEADERS([ext/handlersocket], [php_handlersocket.h])
], [
PHP_ADD_MAKEFILE_FRAGMENT
])

PHP_NEW_EXTENSION(handlersocket, handlersocket.cc, $ext_shared)
if test "$PHP_HANDLERSOCKET_DEBUG" != "no"; then
AC_DEFINE(HAVE_DEBUG, 1, [Whether handlersocket debug mode is enabled])
fi
9 changes: 2 additions & 7 deletions config.w32
Original file line number Diff line number Diff line change
@@ -1,13 +1,8 @@
// $Id$
// vim:ft=javascript

// If your extension references something external, use ARG_WITH
// ARG_WITH("handlersocket", "for handlersocket support", "no");

// Otherwise, use ARG_ENABLE
// ARG_ENABLE("handlersocket", "enable handlersocket support", "no");
ARG_ENABLE("handlersocket", "for handlersocket support", "yes");

if (PHP_HANDLERSOCKET != "no") {
EXTENSION("handlersocket", "handlersocket.cc");
EXTENSION("handlersocket", "handlersocket.c", PHP_HANDLERSOCKET_SHARED, "");
}

Loading