extended result type handling with catalog/pg_type.h
[m6w6/ext-pq] / config.m4
index 8014c65fbf5a189fb63db65ca912189d03fe546d..cfb995bfc3e1528267d9e1a24e551798657fbad8 100644 (file)
--- a/config.m4
+++ b/config.m4
@@ -1,5 +1,7 @@
 PHP_ARG_WITH(pq, [whether to enable libpq (PostgreSQL) support],
-[  --with-pq             Include libpq support])
+[  --with-pq                      Include libpq support])
+PHP_ARG_WITH(pq-postgresql, [where to find PostgreSQL server headers],
+[  --with-pq-postgresql        Define some standard type IODs from catalog/pg_type.h], [$PHP_PQ])
 
 if test "$PHP_PQ" != "no"; then
        SEARCH_PATH="/usr/local /usr /opt"
@@ -31,7 +33,7 @@ if test "$PHP_PQ" != "no"; then
                -L$PQ_DIR/$PHP_LIBDIR
        ])
        PHP_CHECK_LIBRARY(pq, PQlibVersion, [AC_DEFINE(HAVE_PQLIBVERSION, 1, Have PQlibVersion)])
-
+       
        PQ_SRC="\
                src/php_pq_module.c\
                src/php_pq_misc.c\
@@ -51,6 +53,24 @@ if test "$PHP_PQ" != "no"; then
        PHP_NEW_EXTENSION(pq, $PQ_SRC, $ext_shared)
        PHP_ADD_BUILD_DIR($ext_builddir/src)
        PHP_ADD_INCLUDE($ext_srcdir/src)
-    PHP_ADD_EXTENSION_DEP(pq, raphf)
+       PHP_ADD_EXTENSION_DEP(pq, raphf)
+       
+       if test "$PHP_PQ_POSTGRESQL" != "no"; then
+               if test "$PHP_PQ_POSTGRESQL" != "yes"; then
+                       SEARCH_PATH="$PHP_PQ_POSTGRESQL $SEARCH_PATH"
+               fi
+               for i in $SEARCH_PATH; do
+                       CATALOG="$i/include/postgresql/server/catalog/pg_type.h"
+                       AC_MSG_CHECKING(for $CATALOG)
+                       if test -f "$CATALOG"; then
+                               AC_MSG_RESULT(yep)
+                               AC_PROG_AWK()
+                               $AWK -f $ext_srcdir/php_pq_type.awk < "$CATALOG" > $ext_srcdir/php_pq_type.h
+                               AC_DEFINE(HAVE_PHP_PQ_TYPE_H, 1, Have PostgreSQL type OID defs)
+                               break
+                       fi
+                       AC_MSG_RESULT(nope)
+               done
+       fi
 fi