]> granicus.if.org Git - php/commitdiff
Revert "ext/pgsql: Use PKG_CHECK_MODULES to detect the pq library"
authorJoe Watkins <krakjoe@php.net>
Wed, 12 Jun 2019 06:00:55 +0000 (08:00 +0200)
committerJoe Watkins <krakjoe@php.net>
Wed, 12 Jun 2019 06:00:55 +0000 (08:00 +0200)
This reverts commit 1e265174ed8b361c2d8b9c050f9e3b1f7034acc9.

ext/pgsql/config.m4

index f54bf5a8226879048cac735a6bc8d96ad675d5fb..a5afd02923d8e7afba9c4597422efa1f35e3f2ff 100644 (file)
@@ -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