diff options
Diffstat (limited to 'ext/pgsql/config.m4')
| -rw-r--r-- | ext/pgsql/config.m4 | 71 | 
1 files changed, 62 insertions, 9 deletions
diff --git a/ext/pgsql/config.m4 b/ext/pgsql/config.m4 index f54bf5a822..a5afd02923 100644 --- a/ext/pgsql/config.m4 +++ b/ext/pgsql/config.m4 @@ -1,20 +1,70 @@  PHP_ARG_WITH([pgsql], -  [whether to build with PostgreSQL support], -  [AS_HELP_STRING([--with-pgsql], -    [Build with PostgreSQL support.])]) +  [for PostgreSQL support], +  [AS_HELP_STRING([[--with-pgsql[=DIR]]], +    [Include PostgreSQL support. DIR is the PostgreSQL base install directory or +    the path to pg_config])])  if test "$PHP_PGSQL" != "no"; then -  PKG_CHECK_MODULES([PGSQL], [libpq]) +  PHP_EXPAND_PATH($PGSQL_INCLUDE, PGSQL_INCLUDE) -  PHP_EVAL_INCLINE($PGSQL_CFLAGS) -  PHP_EVAL_LIBLINE($PGSQL_LIBS, PGSQL_SHARED_LIBADD) +  AC_MSG_CHECKING(for pg_config) +  for i in $PHP_PGSQL $PHP_PGSQL/bin /usr/local/pgsql/bin /usr/local/bin /usr/bin ""; do +	if test -x $i/pg_config; then +      PG_CONFIG="$i/pg_config" +      break; +    fi +  done -  AC_DEFINE(HAVE_PG_CONFIG_H, 1, [Have pg_config.h]) -  AC_DEFINE(HAVE_PGSQL, 1, [Build with PostgreSQL support]) +  if test -n "$PG_CONFIG"; then +    AC_MSG_RESULT([$PG_CONFIG]) +    PGSQL_INCLUDE=`$PG_CONFIG --includedir` +    PGSQL_LIBDIR=`$PG_CONFIG --libdir` +    if test -r "$PGSQL_INCLUDE/pg_config.h"; then +      AC_DEFINE(HAVE_PG_CONFIG_H,1,[Whether to have pg_config.h]) +    fi +  else +    AC_MSG_RESULT(not found) +    if test "$PHP_PGSQL" = "yes"; then +      PGSQL_SEARCH_PATHS="/usr /usr/local /usr/local/pgsql" +    else +      PGSQL_SEARCH_PATHS=$PHP_PGSQL +    fi +    for i in $PGSQL_SEARCH_PATHS; do +      for j in include include/pgsql include/postgres include/postgresql ""; do +        if test -r "$i/$j/libpq-fe.h"; then +          PGSQL_INC_BASE=$i +          PGSQL_INCLUDE=$i/$j +          if test -r "$i/$j/pg_config.h"; then +            AC_DEFINE(HAVE_PG_CONFIG_H,1,[Whether to have pg_config.h]) +          fi +        fi +      done + +      for j in lib $PHP_LIBDIR/pgsql $PHP_LIBDIR/postgres $PHP_LIBDIR/postgresql ""; do +        if test -f "$i/$j/libpq.so" || test -f "$i/$j/libpq.a"; then +          PGSQL_LIBDIR=$i/$j +        fi +      done +    done +  fi + +  if test -z "$PGSQL_INCLUDE"; then +    AC_MSG_ERROR(Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path) +  fi + +  if test -z "$PGSQL_LIBDIR"; then +    AC_MSG_ERROR(Cannot find libpq.so. Please specify correct PostgreSQL installation path) +  fi + +  if test -z "$PGSQL_INCLUDE" -a -z "$PGSQL_LIBDIR" ; then +    AC_MSG_ERROR([Unable to find libpq anywhere under $PGSQL_SEARCH_PATHS]) +  fi + +  AC_DEFINE(HAVE_PGSQL,1,[Whether to build PostgreSQL support or not])    old_LIBS=$LIBS    old_LDFLAGS=$LDFLAGS -  LDFLAGS="$PGSQL_LIBS $LDFLAGS" +  LDFLAGS="-L$PGSQL_LIBDIR $LDFLAGS"    AC_CHECK_LIB(pq, PQescapeString,AC_DEFINE(HAVE_PQESCAPE,1,[PostgreSQL 7.2.0 or later]))    AC_CHECK_LIB(pq, PQunescapeBytea,AC_DEFINE(HAVE_PQUNESCAPEBYTEA,1,[PostgreSQL 7.3.0 or later]))    AC_CHECK_LIB(pq, PQsetnonblocking,AC_DEFINE(HAVE_PQSETNONBLOCKING,1,[PostgreSQL 7.0.x or later])) @@ -48,7 +98,10 @@ if test "$PHP_PGSQL" != "no"; then    LIBS=$old_LIBS    LDFLAGS=$old_LDFLAGS +  PHP_ADD_LIBRARY_WITH_PATH(pq, $PGSQL_LIBDIR, PGSQL_SHARED_LIBADD)    PHP_SUBST(PGSQL_SHARED_LIBADD) +  PHP_ADD_INCLUDE($PGSQL_INCLUDE) +    PHP_NEW_EXTENSION(pgsql, pgsql.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)  fi  | 
