prefix internal API; ensure raphf is built first in-tree
authorMichael Wallner <mike@php.net>
Thu, 23 Oct 2014 07:42:52 +0000 (09:42 +0200)
committerMichael Wallner <mike@php.net>
Thu, 23 Oct 2014 07:43:45 +0000 (09:43 +0200)
config.m4
config9.m4 [new file with mode: 0644]
package.xml
src/php_pq_misc.c
src/php_pq_misc.h
src/php_pqlob.c
src/php_pqres.c
src/php_pqstm.c
src/php_pqtxn.c

index 4e08f67..5c0e1be 100644 (file)
--- 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 (file)
index 0000000..ed2e3a3
--- /dev/null
@@ -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
index 4a5868c..58c68f0 100644 (file)
@@ -49,6 +49,7 @@ http://pear.php.net/dtd/package-2.0.xsd">
    <file role="doc" name="CREDITS" />
    <file role="doc" name="LICENSE" />
    <file role="src" name="config.m4" />
+   <file role="src" name="config9.m4" />
    <file role="src" name="php_pq.h" />
    <file role="src" name="php_pq_type.awk" />
    <file role="src" name="php_pq_type.h" />
index 2bc430c..d36f905 100644 (file)
@@ -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;
index 2e116d7..9967f1f 100644 (file)
@@ -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)))
index 755599e..f70ed3a 100644 (file)
@@ -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;
index 75a6081..1ad5f1d 100644 (file)
@@ -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;
                                }
                        }
index ba12037..09b781b 100644 (file)
@@ -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);
                }
        }
 }
index 5fc1e9d..c3b0acc 100644 (file)
@@ -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));