use pg_config output, seems the right way
authorRemi Collet <fedora@famillecollet.com>
Thu, 11 Jun 2015 09:18:04 +0000 (11:18 +0200)
committerRemi Collet <fedora@famillecollet.com>
Thu, 11 Jun 2015 09:18:04 +0000 (11:18 +0200)
config9.m4

index 3847c544fb89833058a775aecf5baf37498ceb4d..b32293d389d4f5ebbb2426245286c901a1bb7fc8 100644 (file)
@@ -2,54 +2,73 @@ 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
-               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
+       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`
+
+               if test -z "$PQ_VERSION"; then
+                       AC_MSG_RESULT(version not found)
+                       AC_MSG_ERROR(Please reinstall libpq)
+               else
+                       AC_MSG_RESULT($PQ_VERSION)
                fi
-               AC_MSG_RESULT(nope)
 
-               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
+       else
+               SEARCH_PATH="/usr/local /usr /opt"
+               if test "$PHP_PQ" != "yes"; then
+                       SEARCH_PATH="$PHP_PQ $SEARCH_PATH"
                fi
-               AC_MSG_RESULT(nope)
-       done
+               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 "$PQ_INCDIR"; then
-               AC_MSG_ERROR(could not find include/libpq-events.h)
-       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
 
-       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
+               if test -z "$PQ_INCDIR"; then
+                       AC_MSG_ERROR(could not find include/libpq-events.h)
                fi
-               AC_MSG_RESULT(nope)
 
-               dnl for Debian
-               AC_MSG_CHECKING(for $i/$PHP_LIBDIR/x86_64-linux-gnu/libpq.$SHLIB_SUFFIX_NAME)
-               if test -f "$i/$PHP_LIBDIR/x86_64-linux-gnu/libpq.$SHLIB_SUFFIX_NAME"; then
-                       PQ_LIBDIR=$i/$PHP_LIBDIR/x86_64-linux-gnu
-                       AC_MSG_RESULT(yep)
-                       break
-               fi
-               AC_MSG_RESULT(nope)
-       done
+               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)
 
-       if test -z "$PQ_LIBDIR"; then
-               AC_MSG_ERROR(could not find libpq.$SHLIB_SUFFIX_NAME)
+                       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
+
+               if test -z "$PQ_LIBDIR"; then
+                       AC_MSG_ERROR(could not find libpq.$SHLIB_SUFFIX_NAME)
+               fi
        fi
 
        PHP_ADD_INCLUDE($PQ_INCDIR)