X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=config9.m4;h=b32293d389d4f5ebbb2426245286c901a1bb7fc8;hp=b63f2ad6f40dc45864d1a6b8d689537c959da683;hb=83b4777e8aee1a30a29d41971b0f2b8315e6b501;hpb=0e66a82238ad0aacbf646d0016193a064a4b7ecb diff --git a/config9.m4 b/config9.m4 index b63f2ad..b32293d 100644 --- a/config9.m4 +++ b/config9.m4 @@ -2,32 +2,76 @@ 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 /usr/include/postgresql /opt" - if test "$PHP_PQ" != "yes"; then - SEARCH_PATH="$PHP_PQ $SEARCH_PATH" - fi - for i in $SEARCH_PATH; do - AC_MSG_CHECKING(for $i/libpq-events.h) - if test -f "$i/libpq-events.h"; then - PQ_DIR=$i - 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_DIR=$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) + + 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 - if test -z "$PQ_DIR"; then - AC_MSG_ERROR(could not find include/libpq-events.h) + if test -z "$PQ_INCDIR"; then + AC_MSG_ERROR(could not find include/libpq-events.h) + 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 + + if test -z "$PQ_LIBDIR"; then + AC_MSG_ERROR(could not find libpq.$SHLIB_SUFFIX_NAME) + fi fi - PHP_ADD_INCLUDE($PQ_DIR) + + PHP_ADD_INCLUDE($PQ_INCDIR) ifdef([AC_PROG_EGREP], [ AC_PROG_EGREP @@ -40,7 +84,7 @@ if test "$PHP_PQ" != "no"; then dnl AC_DEFUN([PQ_CHECK_CONST], [ AC_MSG_CHECKING(for $1) - if $EGREP -q $1 $PQ_DIR/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 @@ -67,12 +111,12 @@ if test "$PHP_PQ" != "no"; then fi fi ], [ - -L$PQ_DIR/$PHP_LIBDIR + -L$PQ_LIBDIR ]) ]) 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)