X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=config9.m4;h=d845e282d4652f321c27b1bf8d637656b80058ee;hp=b32293d389d4f5ebbb2426245286c901a1bb7fc8;hb=HEAD;hpb=5b7491863d7987e4d2d24d4071f93a0aa32c9b07 diff --git a/config9.m4 b/config9.m4 index b32293d..d845e28 100644 --- a/config9.m4 +++ b/config9.m4 @@ -2,73 +2,46 @@ PHP_ARG_WITH(pq, [whether to enable libpq (PostgreSQL) support], [ --with-pq[=DIR] Include libpq support]) if test "$PHP_PQ" != "no"; then - AC_PATH_PROG(PG_CONFIG, pg_config, no) - dnl use pg_config output when no DIR given - if test -x "$PG_CONFIG" && test "$PHP_PQ" = "yes"; then - AC_MSG_CHECKING(libpq version) - PQ_INCDIR=`$PG_CONFIG --includedir` - PQ_LIBDIR=`$PG_CONFIG --libdir` - PQ_VERSION=`$PG_CONFIG --version` + SEARCH_PATH="/usr/local /usr /opt" + if test "$PHP_PQ" != "yes"; then + SEARCH_PATH="$PHP_PQ $SEARCH_PATH" + fi - if test -z "$PQ_VERSION"; then - AC_MSG_RESULT(version not found) - AC_MSG_ERROR(Please reinstall libpq) - else - AC_MSG_RESULT($PQ_VERSION) + AC_MSG_CHECKING(for pg_config) + for i in $SEARCH_PATH; do + if test -x "$i/bin/pg_config"; then + PG_CONFIG="$i/bin/pg_config" + break fi + done - else - 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 - dnl for Debian - AC_MSG_CHECKING(for $i/include/postgresql/libpq-events.h) - if test -f "$i/include/postgresql/libpq-events.h"; then - PQ_INCDIR=$i/include/postgresql - AC_MSG_RESULT(yep) - break - fi - AC_MSG_RESULT(nope) + if test -z "$PG_CONFIG"; then + AC_PATH_PROG(PG_CONFIG, pg_config, no) + fi - AC_MSG_CHECKING(for $i/include/libpq-events.h) - if test -f "$i/include/libpq-events.h"; then - PQ_INCDIR=$i/include - AC_MSG_RESULT(yep) - break - fi - AC_MSG_RESULT(nope) - done + AC_MSG_RESULT($PG_CONFIG) - if test -z "$PQ_INCDIR"; then - AC_MSG_ERROR(could not find include/libpq-events.h) + 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 - ARCH=`uname -i` - for i in $SEARCH_PATH; do - AC_MSG_CHECKING(for $i/$PHP_LIBDIR/libpq.$SHLIB_SUFFIX_NAME) - if test -f "$i/$PHP_LIBDIR/libpq.$SHLIB_SUFFIX_NAME"; then - PQ_LIBDIR=$i/$PHP_LIBDIR - AC_MSG_RESULT(yep) - break - fi - AC_MSG_RESULT(nope) - - dnl for Debian - AC_MSG_CHECKING(for $i/$PHP_LIBDIR/$ARCH-linux-gnu/libpq.$SHLIB_SUFFIX_NAME) - if test -f "$i/$PHP_LIBDIR/$ARCH-linux-gnu/libpq.$SHLIB_SUFFIX_NAME"; then - PQ_LIBDIR=$i/$PHP_LIBDIR/$ARCH-linux-gnu - AC_MSG_RESULT(yep) - break - fi - AC_MSG_RESULT(nope) - done + AC_MSG_CHECKING(for PostgreSQL version) + PQ_VERSION=$($PG_CONFIG --version | $SED 's/PostgreSQL //') - if test -z "$PQ_LIBDIR"; then - AC_MSG_ERROR(could not find libpq.$SHLIB_SUFFIX_NAME) + 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_INCDIR) @@ -95,24 +68,30 @@ 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_LIBDIR ]) + LIBS="$save_LIBS" ]) PQ_CHECK_FUNC(PQregisterEventProc, true) @@ -120,6 +99,8 @@ if test "$PHP_PQ" != "no"; then 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) @@ -199,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