From 7d954192543192f2ef9b0db27f22b7807de31749 Mon Sep 17 00:00:00 2001 From: Michael Wallner Date: Thu, 23 Oct 2014 09:42:52 +0200 Subject: [PATCH] prefix internal API; ensure raphf is built first in-tree --- config.m4 | 175 +--------------------------------------------- config9.m4 | 172 +++++++++++++++++++++++++++++++++++++++++++++ package.xml | 1 + src/php_pq_misc.c | 6 +- src/php_pq_misc.h | 6 +- src/php_pqlob.c | 4 +- src/php_pqres.c | 2 +- src/php_pqstm.c | 2 +- src/php_pqtxn.c | 6 +- 9 files changed, 188 insertions(+), 186 deletions(-) create mode 100644 config9.m4 diff --git a/config.m4 b/config.m4 index 4e08f67..5c0e1be 100644 --- a/config.m4 +++ b/config.m4 @@ -1,173 +1,2 @@ -PHP_ARG_WITH(pq, [whether to enable libpq (PostgreSQL) support], -[ --with-pq[=DIR] Include libpq support]) - -if test "$PHP_PQ" != "no"; then - SEARCH_PATH="/usr/local /usr /opt" - if test "$PHP_PQ" != "yes"; then - SEARCH_PATH="$PHP_PQ $SEARCH_PATH" - fi - for i in $SEARCH_PATH; do - AC_MSG_CHECKING(for $i/include/libpq-events.h) - if test -f "$i/include/libpq-events.h"; then - PQ_DIR=$i - AC_MSG_RESULT(yep) - break - fi - AC_MSG_RESULT(nope) - done - - if test -z "$PQ_DIR"; then - AC_MSG_ERROR(could not find include/libpq-events.h) - fi - PHP_ADD_INCLUDE($PQ_DIR/include) - - ifdef([AC_PROG_EGREP], [ - AC_PROG_EGREP - ], [ - AC_CHECK_PROG(EGREP, egrep, egrep) - ]) - - dnl - dnl PQ_CHECK_CONST(name) - dnl - AC_DEFUN([PQ_CHECK_CONST], [ - AC_MSG_CHECKING(for $1) - if $EGREP -q $1 $PQ_DIR/include/libpq-fe.h; then - AC_DEFINE(HAVE_$1, 1, [Have $1]) - AC_MSG_RESULT(yep) - else - AC_MSG_RESULT(nope) - fi - ]) - - PQ_CHECK_CONST(PGRES_SINGLE_TUPLE) - PQ_CHECK_CONST(PGRES_COPY_BOTH) - - - dnl - dnl PQ_CHECK_FUNC(sym, fail-hard) - dnl - AC_DEFUN([PQ_CHECK_FUNC], [ - FAIL_HARD=$2 - - PHP_CHECK_LIBRARY(pq, $1, [ - AC_DEFINE([HAVE_]translit($1,a-z,A-Z), 1, Have $1) - ], [ - if test -n "$FAIL_HARD"; then - if "$FAIL_HARD"; then - AC_MSG_ERROR(could not find $PQ_SYM in -lpq) - fi - fi - ], [ - -L$PQ_DIR/$PHP_LIBDIR - ]) - ]) - - PQ_CHECK_FUNC(PQregisterEventProc, true) - PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_DIR/$PHP_LIBDIR, PQ_SHARED_LIBADD) - PHP_SUBST(PQ_SHARED_LIBADD) - - PQ_CHECK_FUNC(PQlibVersion) - PQ_CHECK_FUNC(PQconninfo) - PQ_CHECK_FUNC(PQsetSingleRowMode) - - dnl - dnl PQ_HAVE_PHP_EXT(name[, code-if-yes[, code-if-not]]) - dnl - AC_DEFUN([PQ_HAVE_PHP_EXT], [ - extname=$1 - haveext=$[PHP_]translit($1,a-z_-,A-Z__) - AC_MSG_CHECKING([for ext/$extname support]) - if test -x "$PHP_EXECUTABLE"; then - grepext=`$PHP_EXECUTABLE -m | $EGREP ^$extname\$` - if test "$grepext" = "$extname"; then - [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 - AC_MSG_RESULT([yes]) - $2 - else - [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)= - AC_MSG_RESULT([no]) - $3 - fi - elif test "$haveext" != "no" && test "x$haveext" != "x"; then - [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 - AC_MSG_RESULT([yes]) - $2 - else - [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)= - AC_MSG_RESULT([no]) - $3 - fi - ]) - - PQ_SRC="\ - src/php_pq_module.c\ - src/php_pq_misc.c\ - src/php_pq_callback.c\ - src/php_pq_object.c\ - src/php_pq_params.c\ - src/php_pqcancel.c\ - src/php_pqconn.c\ - src/php_pqconn_event.c\ - src/php_pqcopy.c\ - src/php_pqexc.c\ - src/php_pqlob.c\ - src/php_pqres.c\ - src/php_pqstm.c\ - src/php_pqtxn.c\ - src/php_pqtypes.c\ - src/php_pqcur.c\ - " - PHP_NEW_EXTENSION(pq, $PQ_SRC, $ext_shared) - PHP_ADD_BUILD_DIR($ext_builddir/src) - PHP_ADD_INCLUDE($ext_srcdir/src) - - PQ_HAVE_PHP_EXT([raphf], [ - AC_MSG_CHECKING([for php_raphf.h]) - PQ_EXT_RAPHF_INCDIR= - for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../raphf; do - if test -d $i; then - if test -f $i/php_raphf.h; then - PQ_EXT_RAPHF_INCDIR=$i - break - elif test -f $i/ext/raphf/php_raphf.h; then - PQ_EXT_RAPHF_INCDIR=$i/ext/raphf - break - fi - fi - done - if test "x$PQ_EXT_RAPHF_INCDIR" = "x"; then - AC_MSG_ERROR([not found]) - else - AC_MSG_RESULT([$PQ_EXT_RAPHF_INCDIR]) - AC_DEFINE([PHP_PQ_HAVE_PHP_RAPHF_H], [1], [Have ext/raphf support]) - PHP_ADD_INCLUDE([$PQ_EXT_RAPHF_INCDIR]) - fi - ], [ - AC_MSG_ERROR([Please install pecl/raphf and activate extension=raphf.$SHLIB_DL_SUFFIX_NAME in your php.ini]) - ]) - PHP_ADD_EXTENSION_DEP(pq, raphf, true) - PQ_HAVE_PHP_EXT([json], [ - AC_MSG_CHECKING([for php_json.h]) - PQ_EXT_JSON_INCDIR= - for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../json ../jsonc ../jsond; do - if test -d $i; then - if test -f $i/php_json.h; then - PQ_EXT_JSON_INCDIR=$i - break - elif test -f $i/ext/json/php_json.h; then - PQ_EXT_JSON_INCDIR=$i/ext/json - break - fi - fi - done - if test "x$PQ_EXT_JSON_INCDIR" = "x"; then - AC_MSG_ERROR([not found]) - else - AC_MSG_RESULT([$PQ_EXT_JSON_INCDIR]) - AC_DEFINE([PHP_PQ_HAVE_PHP_JSON_H], [1], [Have ext/json support]) - PHP_ADD_INCLUDE([$PQ_EXT_JSON_INCDIR]) - fi - ]) -fi - +dnl phpize stub of config9.m4 for pecl/pq +sinclude(config9.m4) diff --git a/config9.m4 b/config9.m4 new file mode 100644 index 0000000..ed2e3a3 --- /dev/null +++ b/config9.m4 @@ -0,0 +1,172 @@ +PHP_ARG_WITH(pq, [whether to enable libpq (PostgreSQL) support], +[ --with-pq[=DIR] Include libpq support]) + +if test "$PHP_PQ" != "no"; then + SEARCH_PATH="/usr/local /usr /opt" + if test "$PHP_PQ" != "yes"; then + SEARCH_PATH="$PHP_PQ $SEARCH_PATH" + fi + for i in $SEARCH_PATH; do + AC_MSG_CHECKING(for $i/include/libpq-events.h) + if test -f "$i/include/libpq-events.h"; then + PQ_DIR=$i + AC_MSG_RESULT(yep) + break + fi + AC_MSG_RESULT(nope) + done + + if test -z "$PQ_DIR"; then + AC_MSG_ERROR(could not find include/libpq-events.h) + fi + PHP_ADD_INCLUDE($PQ_DIR/include) + + ifdef([AC_PROG_EGREP], [ + AC_PROG_EGREP + ], [ + AC_CHECK_PROG(EGREP, egrep, egrep) + ]) + + dnl + dnl PQ_CHECK_CONST(name) + dnl + AC_DEFUN([PQ_CHECK_CONST], [ + AC_MSG_CHECKING(for $1) + if $EGREP -q $1 $PQ_DIR/include/libpq-fe.h; then + AC_DEFINE(HAVE_$1, 1, [Have $1]) + AC_MSG_RESULT(yep) + else + AC_MSG_RESULT(nope) + fi + ]) + + PQ_CHECK_CONST(PGRES_SINGLE_TUPLE) + PQ_CHECK_CONST(PGRES_COPY_BOTH) + + + dnl + dnl PQ_CHECK_FUNC(sym, fail-hard) + dnl + AC_DEFUN([PQ_CHECK_FUNC], [ + FAIL_HARD=$2 + + PHP_CHECK_LIBRARY(pq, $1, [ + AC_DEFINE([HAVE_]translit($1,a-z,A-Z), 1, Have $1) + ], [ + if test -n "$FAIL_HARD"; then + if "$FAIL_HARD"; then + AC_MSG_ERROR(could not find $PQ_SYM in -lpq) + fi + fi + ], [ + -L$PQ_DIR/$PHP_LIBDIR + ]) + ]) + + PQ_CHECK_FUNC(PQregisterEventProc, true) + PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_DIR/$PHP_LIBDIR, PQ_SHARED_LIBADD) + PHP_SUBST(PQ_SHARED_LIBADD) + + PQ_CHECK_FUNC(PQlibVersion) + PQ_CHECK_FUNC(PQconninfo) + PQ_CHECK_FUNC(PQsetSingleRowMode) + + dnl + dnl PQ_HAVE_PHP_EXT(name[, code-if-yes[, code-if-not]]) + dnl + AC_DEFUN([PQ_HAVE_PHP_EXT], [ + extname=$1 + haveext=$[PHP_]translit($1,a-z_-,A-Z__) + AC_MSG_CHECKING([for ext/$extname support]) + if test "$haveext" != "no" && test "x$haveext" != "x"; then + [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 + AC_MSG_RESULT([yes]) + $2 + elif test -x "$PHP_EXECUTABLE"; then + grepext=`$PHP_EXECUTABLE -m | $EGREP ^$extname\$` + if test "$grepext" = "$extname"; then + [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)=1 + AC_MSG_RESULT([yes]) + $2 + else + [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)= + AC_MSG_RESULT([no]) + $3 + fi + else + [PHP_PQ_HAVE_EXT_]translit($1,a-z_-,A-Z__)= + AC_MSG_RESULT([no]) + $3 + fi + ]) + + PQ_SRC="\ + src/php_pq_module.c\ + src/php_pq_misc.c\ + src/php_pq_callback.c\ + src/php_pq_object.c\ + src/php_pq_params.c\ + src/php_pqcancel.c\ + src/php_pqconn.c\ + src/php_pqconn_event.c\ + src/php_pqcopy.c\ + src/php_pqexc.c\ + src/php_pqlob.c\ + src/php_pqres.c\ + src/php_pqstm.c\ + src/php_pqtxn.c\ + src/php_pqtypes.c\ + src/php_pqcur.c\ + " + PHP_NEW_EXTENSION(pq, $PQ_SRC, $ext_shared) + PHP_ADD_BUILD_DIR($ext_builddir/src) + PHP_ADD_INCLUDE($ext_srcdir/src) + + PQ_HAVE_PHP_EXT([raphf], [ + AC_MSG_CHECKING([for php_raphf.h]) + PQ_EXT_RAPHF_INCDIR= + for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../raphf; do + if test -d $i; then + if test -f $i/php_raphf.h; then + PQ_EXT_RAPHF_INCDIR=$i + break + elif test -f $i/ext/raphf/php_raphf.h; then + PQ_EXT_RAPHF_INCDIR=$i/ext/raphf + break + fi + fi + done + if test "x$PQ_EXT_RAPHF_INCDIR" = "x"; then + AC_MSG_ERROR([not found]) + else + AC_MSG_RESULT([$PQ_EXT_RAPHF_INCDIR]) + AC_DEFINE([PHP_PQ_HAVE_PHP_RAPHF_H], [1], [Have ext/raphf support]) + PHP_ADD_INCLUDE([$PQ_EXT_RAPHF_INCDIR]) + fi + ], [ + AC_MSG_ERROR([Please install pecl/raphf and activate extension=raphf.$SHLIB_DL_SUFFIX_NAME in your php.ini]) + ]) + PHP_ADD_EXTENSION_DEP(pq, raphf, true) + PQ_HAVE_PHP_EXT([json], [ + AC_MSG_CHECKING([for php_json.h]) + PQ_EXT_JSON_INCDIR= + for i in `echo $INCLUDES | $SED -e's/-I//g'` $abs_srcdir ../json ../jsonc ../jsond; do + if test -d $i; then + if test -f $i/php_json.h; then + PQ_EXT_JSON_INCDIR=$i + break + elif test -f $i/ext/json/php_json.h; then + PQ_EXT_JSON_INCDIR=$i/ext/json + break + fi + fi + done + if test "x$PQ_EXT_JSON_INCDIR" = "x"; then + AC_MSG_ERROR([not found]) + else + AC_MSG_RESULT([$PQ_EXT_JSON_INCDIR]) + AC_DEFINE([PHP_PQ_HAVE_PHP_JSON_H], [1], [Have ext/json support]) + PHP_ADD_INCLUDE([$PQ_EXT_JSON_INCDIR]) + fi + ]) +fi diff --git a/package.xml b/package.xml index 4a5868c..58c68f0 100644 --- a/package.xml +++ b/package.xml @@ -49,6 +49,7 @@ http://pear.php.net/dtd/package-2.0.xsd"> + diff --git a/src/php_pq_misc.c b/src/php_pq_misc.c index 2bc430c..d36f905 100644 --- a/src/php_pq_misc.c +++ b/src/php_pq_misc.c @@ -25,7 +25,7 @@ #include "php_pq.h" #include "php_pq_misc.h" -char *rtrim(char *e) +char *php_pq_rtrim(char *e) { size_t l = strlen(e); @@ -35,7 +35,7 @@ char *rtrim(char *e) return e; } -const char *strmode(long mode) +const char *php_pq_strmode(long mode) { switch (mode & (INV_READ|INV_WRITE)) { case INV_READ|INV_WRITE: @@ -49,7 +49,7 @@ const char *strmode(long mode) } } -int compare_index(const void *lptr, const void *rptr TSRMLS_DC) +int php_pq_compare_index(const void *lptr, const void *rptr TSRMLS_DC) { const Bucket *l = *(const Bucket **) lptr; const Bucket *r = *(const Bucket **) rptr; diff --git a/src/php_pq_misc.h b/src/php_pq_misc.h index 2e116d7..9967f1f 100644 --- a/src/php_pq_misc.h +++ b/src/php_pq_misc.h @@ -28,13 +28,13 @@ typedef int STATUS; /* SUCCESS/FAILURE */ #endif /* trim LF from EOL */ -char *rtrim(char *e); +char *php_pq_rtrim(char *e); /* R, W, RW */ -const char *strmode(long mode); +const char *php_pq_strmode(long mode); /* compare array index */ -int compare_index(const void *lptr, const void *rptr TSRMLS_DC); +int php_pq_compare_index(const void *lptr, const void *rptr TSRMLS_DC); #define PHP_PQerrorMessage(c) rtrim(PQerrorMessage((c))) #define PHP_PQresultErrorMessage(r) rtrim(PQresultErrorMessage((r))) diff --git a/src/php_pqlob.c b/src/php_pqlob.c index 755599e..f70ed3a 100644 --- a/src/php_pqlob.c +++ b/src/php_pqlob.c @@ -258,12 +258,12 @@ static PHP_METHOD(pqlob, __construct) { } if (loid == InvalidOid) { - throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to create large object with mode '%s' (%s)", strmode(mode), PHP_PQerrorMessage(txn_obj->intern->conn->intern->conn)); + throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to create large object with mode '%s' (%s)", php_pq_strmode(mode), PHP_PQerrorMessage(txn_obj->intern->conn->intern->conn)); } else { int lofd = lo_open(txn_obj->intern->conn->intern->conn, loid, mode); if (lofd < 0) { - throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s' (%s)", loid, strmode(mode), PHP_PQerrorMessage(txn_obj->intern->conn->intern->conn)); + throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s' (%s)", loid, php_pq_strmode(mode), PHP_PQerrorMessage(txn_obj->intern->conn->intern->conn)); } else { obj->intern = ecalloc(1, sizeof(*obj->intern)); obj->intern->lofd = lofd; diff --git a/src/php_pqres.c b/src/php_pqres.c index 75a6081..1ad5f1d 100644 --- a/src/php_pqres.c +++ b/src/php_pqres.c @@ -700,7 +700,7 @@ static PHP_METHOD(pqres, bind) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Failed to bind column %s@%d", col.name, col.num); RETVAL_FALSE; } else { - zend_hash_sort(&obj->intern->bound, zend_qsort, compare_index, 0 TSRMLS_CC); + zend_hash_sort(&obj->intern->bound, zend_qsort, php_pq_compare_index, 0 TSRMLS_CC); RETVAL_TRUE; } } diff --git a/src/php_pqstm.c b/src/php_pqstm.c index ba12037..09b781b 100644 --- a/src/php_pqstm.c +++ b/src/php_pqstm.c @@ -183,7 +183,7 @@ static PHP_METHOD(pqstm, bind) { SEPARATE_ZVAL_TO_MAKE_IS_REF(param_ref); Z_ADDREF_PP(param_ref); zend_hash_index_update(&obj->intern->bound, param_no, (void *) param_ref, sizeof(zval *), NULL); - zend_hash_sort(&obj->intern->bound, zend_qsort, compare_index, 0 TSRMLS_CC); + zend_hash_sort(&obj->intern->bound, zend_qsort, php_pq_compare_index, 0 TSRMLS_CC); } } } diff --git a/src/php_pqtxn.c b/src/php_pqtxn.c index 5fc1e9d..c3b0acc 100644 --- a/src/php_pqtxn.c +++ b/src/php_pqtxn.c @@ -704,7 +704,7 @@ static PHP_METHOD(pqtxn, openLOB) { int lofd = lo_open(obj->intern->conn->intern->conn, loid, mode); if (lofd < 0) { - throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s' (%s)", loid, strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); + throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s' (%s)", loid, php_pq_strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); } else { php_pqlob_t *lob = ecalloc(1, sizeof(*lob)); @@ -743,12 +743,12 @@ static PHP_METHOD(pqtxn, createLOB) { Oid loid = lo_creat(obj->intern->conn->intern->conn, mode); if (loid == InvalidOid) { - throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to create large object with mode '%s' (%s)", strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); + throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to create large object with mode '%s' (%s)", php_pq_strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); } else { int lofd = lo_open(obj->intern->conn->intern->conn, loid, mode); if (lofd < 0) { - throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s': %s", loid, strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); + throw_exce(EX_RUNTIME TSRMLS_CC, "Failed to open large object with oid=%u with mode '%s': %s", loid, php_pq_strmode(mode), PHP_PQerrorMessage(obj->intern->conn->intern->conn)); } else { php_pqlob_t *lob = ecalloc(1, sizeof(*lob));