fix bitbucket issue #2
[m6w6/ext-pq] / config.m4
index 8301db03f49553b6e76b66f4a063b597bea3ee2c..21d3b88cb913b4e9c633c7c0f91aeb9cd4951b60 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[=DIR]           Include libpq support])
+PHP_ARG_WITH(pq-postgresql, [where to find PostgreSQL server headers],
+[  --with-pq-postgresql[=DIR]  PQ: Define some standard type OIDs from catalog/pg_type.h], $PHP_PQ)
 
 if test "$PHP_PQ" != "no"; then
        SEARCH_PATH="/usr/local /usr /opt"
@@ -31,8 +33,50 @@ if test "$PHP_PQ" != "no"; then
                -L$PQ_DIR/$PHP_LIBDIR
        ])
        PHP_CHECK_LIBRARY(pq, PQlibVersion, [AC_DEFINE(HAVE_PQLIBVERSION, 1, Have PQlibVersion)])
-
-       PHP_NEW_EXTENSION(pq, php_pq.c, $ext_shared)
-    PHP_ADD_EXTENSION_DEP(pq, raphf)
+       
+       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)
+       PHP_ADD_INCLUDE($ext_srcdir/src)
+       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
+               CATALOG_PATH=""
+               for i in $SEARCH_PATH; do
+                       CATALOG_PATH="$i/include/server/catalog/pg_type.h $CATALOG_PATH"
+                       CATALOG_PATH="$i/include/postgresql/server/catalog/pg_type.h $CATALOG_PATH"
+               done
+               for CATALOG in $CATALOG_PATH; do
+                       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