prepare v2.2.3
[m6w6/ext-pq] / config9.m4
index ed2e3a36372fea19d8215ca9c9778591cf61678a..d845e282d4652f321c27b1bf8d637656b80058ee 100644 (file)
@@ -2,24 +2,49 @@ 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
+
+       AC_MSG_CHECKING(for pg_config)
        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)
+               if test -x "$i/bin/pg_config"; then
+                       PG_CONFIG="$i/bin/pg_config"
                        break
                fi
-               AC_MSG_RESULT(nope)
        done
 
-       if test -z "$PQ_DIR"; then
-               AC_MSG_ERROR(could not find include/libpq-events.h)
+       if test -z "$PG_CONFIG"; then
+               AC_PATH_PROG(PG_CONFIG, pg_config, no)
+       fi
+
+       AC_MSG_RESULT($PG_CONFIG)
+
+       if test "$PG_CONFIG" = "no"; then
+               AC_MSG_ERROR(could not find a usable pg_config in $SEARCH_PATH)
+       else
+               if test "$PHP_PQ" != "yes" -a "$PHP_PQ/bin/pg_config" != "$PG_CONFIG"; then
+                       AC_MSG_WARN(Found pg_config is not in $PHP_PQ)
+               fi
+
+               AC_MSG_CHECKING(for PostgreSQL version)
+               PQ_VERSION=$($PG_CONFIG --version | $SED 's/PostgreSQL //')
+
+               if test -z "$PQ_VERSION"; then
+                       AC_MSG_RESULT(not found)
+                       AC_MSG_ERROR(\`$PG_CONFIG --version\` did not provide any meaningful output, please reinstall postgresql/libpq)
+               else
+                       AC_MSG_RESULT($PQ_VERSION)
+                       AC_DEFINE_UNQUOTED(PHP_PQ_LIBVERSION, "$PQ_VERSION", [ ])
+               fi
+
+               PQ_INCDIR=$($PG_CONFIG --includedir)
+               PQ_LIBDIR=$($PG_CONFIG --libdir)
        fi
-       PHP_ADD_INCLUDE($PQ_DIR/include)
+
+       PHP_ADD_INCLUDE($PQ_INCDIR)
 
        ifdef([AC_PROG_EGREP], [
                AC_PROG_EGREP
@@ -32,7 +57,7 @@ if test "$PHP_PQ" != "no"; then
        dnl
        AC_DEFUN([PQ_CHECK_CONST], [
                AC_MSG_CHECKING(for $1)
-               if $EGREP -q $1 $PQ_DIR/include/libpq-fe.h; then
+               if $EGREP -q $1 $PQ_INCDIR/libpq-fe.h; then
                        AC_DEFINE(HAVE_$1, 1, [Have $1])
                        AC_MSG_RESULT(yep)
                else
@@ -43,31 +68,39 @@ if test "$PHP_PQ" != "no"; then
        PQ_CHECK_CONST(PGRES_SINGLE_TUPLE)
        PQ_CHECK_CONST(PGRES_COPY_BOTH)
 
+       PQ_CHECK_CONST(CONNECTION_CHECK_WRITABLE)
+       PQ_CHECK_CONST(CONNECTION_CONSUME)
+       PQ_CHECK_CONST(CONNECTION_GSS_STARTUP)
 
        dnl
        dnl PQ_CHECK_FUNC(sym, fail-hard)
        dnl
        AC_DEFUN([PQ_CHECK_FUNC], [
+               PQ_SYM=$1
                FAIL_HARD=$2
-
+               save_LIBS="$LIBS"
+               LIBS=
                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)
+                               if $FAIL_HARD; then
+                                       AC_MSG_ERROR(could not find $PQ_SYM in -lpq -L$PQ_LIBDIR)
                                fi
                        fi
                ], [
-                       -L$PQ_DIR/$PHP_LIBDIR
+                       -L$PQ_LIBDIR
                ])
+               LIBS="$save_LIBS"
        ])
 
        PQ_CHECK_FUNC(PQregisterEventProc, true)
-       PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_DIR/$PHP_LIBDIR, PQ_SHARED_LIBADD)
+       PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_LIBDIR, PQ_SHARED_LIBADD)
        PHP_SUBST(PQ_SHARED_LIBADD)
 
        PQ_CHECK_FUNC(PQlibVersion)
+       PQ_CHECK_FUNC(PQprotocolVersion)
+       PQ_CHECK_FUNC(PQserverVersion)
        PQ_CHECK_FUNC(PQconninfo)
        PQ_CHECK_FUNC(PQsetSingleRowMode)
 
@@ -147,26 +180,4 @@ if test "$PHP_PQ" != "no"; then
                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