X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-pq;a=blobdiff_plain;f=config.m4;h=ae8ae2ffc8e7733334e07febddf6647494944c7e;hp=7abff92cb0bb96fc71a3cfaf2f35e8c631c2f7ed;hb=c62ffa9e8cf262c412efeb84c2523d1c78897282;hpb=dad016bcee4340d19f604e51b12d97266dbacefd diff --git a/config.m4 b/config.m4 index 7abff92..ae8ae2f 100644 --- a/config.m4 +++ b/config.m4 @@ -1,5 +1,5 @@ -PHP_ARG_WITH(pq, for pq support, -[ --with-pq Include pq support]) +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" @@ -17,23 +17,73 @@ if test "$PHP_PQ" != "no"; then done if test -z "$PQ_DIR"; then - AC_MSG_FAILURE(could not find include/libpq-events.h) + AC_MSG_ERROR(could not find include/libpq-events.h) fi PHP_ADD_INCLUDE($PQ_DIR/include) - - PQ_SYM=PQregisterEventProc - PHP_CHECK_LIBRARY(pq, $PQ_SYM, [ - PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_DIR/$PHP_LIBDIR, PQ_SHARED_LIBADD) - PHP_SUBST(PQ_SHARED_LIBADD) - ],[ - AC_MSG_ERROR(could not find $PQ_SYM in -lpq) - ],[ - -L$PQ_DIR/$PHP_LIBDIR + + ifdef([AC_PROG_EGREP], [ + AC_PROG_EGREP + ], [ + AC_CHECK_PROG(EGREP, egrep, egrep) ]) - PHP_CHECK_LIBRARY(pq, PQlibVersion, AC_DEFINE(HAVE_PQLIBVERSION, 1, Have PQlibVersion)) + + for PQ_DEF in PGRES_SINGLE_TUPLE PGRES_COPY_BOTH; do + AC_MSG_CHECKING(for $PQ_DEF) + if $EGREP -q $PQ_DEF $PQ_DIR/include/libpq-fe.h; then + AC_DEFINE([$PQ_DEF], [1], [Have $PQ_DEF]) + AC_MSG_RESULT(yep) + else + AC_MSG_RESULT(nope) + fi + done - PQ_SRC="src/php_pq.c" + + AC_DEFUN([PQ_CHECK_FUNC], [ + FAIL_HARD=$2 + + 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) + fi + fi + ], [ + -L$PQ_DIR/$PHP_LIBDIR + ]) + ]) + + PQ_CHECK_FUNC(PQregisterEventProc, true) + PHP_ADD_LIBRARY_WITH_PATH(pq, $PQ_DIR/$PHP_LIBDIR, PQ_SHARED_LIBADD) + PHP_SUBST(PQ_SHARED_LIBADD) + + PQ_CHECK_FUNC(PQlibVersion) + PQ_CHECK_FUNC(PQconninfo) + PQ_CHECK_FUNC(PQsetSingleRowMode) + + PQ_SRC="\ + src/php_pq_module.c\ + src/php_pq_misc.c\ + src/php_pq_callback.c\ + src/php_pq_object.c\ + src/php_pq_params.c\ + src/php_pqcancel.c\ + src/php_pqconn.c\ + src/php_pqconn_event.c\ + src/php_pqcopy.c\ + src/php_pqexc.c\ + src/php_pqlob.c\ + src/php_pqres.c\ + src/php_pqstm.c\ + src/php_pqtxn.c\ + src/php_pqtypes.c\ + src/php_pqcur.c\ + " PHP_NEW_EXTENSION(pq, $PQ_SRC, $ext_shared) - PHP_ADD_BUILD_DIR($ext_builddir/src, 1) + PHP_ADD_BUILD_DIR($ext_builddir/src) + PHP_ADD_INCLUDE($ext_srcdir/src) + PHP_ADD_EXTENSION_DEP(pq, raphf) + fi