summaryrefslogtreecommitdiffstats
path: root/m4/want_pgsql.m4
diff options
context:
space:
mode:
Diffstat (limited to 'm4/want_pgsql.m4')
-rw-r--r--m4/want_pgsql.m461
1 files changed, 61 insertions, 0 deletions
diff --git a/m4/want_pgsql.m4 b/m4/want_pgsql.m4
new file mode 100644
index 0000000..b81d556
--- /dev/null
+++ b/m4/want_pgsql.m4
@@ -0,0 +1,61 @@
+AC_DEFUN([DOVECOT_WANT_PGSQL], [
+ if test $want_pgsql != no; then
+ AC_CHECK_PROG(PG_CONFIG, pg_config, pg_config, NO)
+ if test $PG_CONFIG = NO; then
+ # based on code from PHP
+ for i in /usr /usr/local /usr/local/pgsql; do
+ for j in include include/pgsql include/postgres include/postgresql ""; do
+ if test -r "$i/$j/libpq-fe.h"; then
+ PGSQL_INCLUDE=$i/$j
+ fi
+ done
+ for lib in lib lib64; do
+ for j in $lib $lib/pgsql $lib/postgres $lib/postgresql ""; do
+ if test -f "$i/$j/libpq.so" || test -f "$i/$j/libpq.a"; then
+ PGSQL_LIBDIR=$i/$j
+ fi
+ done
+ done
+ done
+ else
+ PGSQL_INCLUDE="`$PG_CONFIG --includedir`"
+ PGSQL_LIBDIR="`$PG_CONFIG --libdir`"
+ fi
+
+ old_LIBS=$LIBS
+ if test "$PGSQL_LIBDIR" != ""; then
+ LIBS="$LIBS -L$PGSQL_LIBDIR"
+ fi
+
+ AC_CHECK_LIB(pq, PQconnectdb, [
+ AC_CHECK_LIB(pq, PQescapeStringConn, [
+ AC_DEFINE(HAVE_PQESCAPE_STRING_CONN,, [Define if libpq has PQescapeStringConn function])
+ ])
+ old_CPPFLAGS=$CPPFLAGS
+ if test "$PGSQL_INCLUDE" != ""; then
+ CPPFLAGS="$CPPFLAGS -I$PGSQL_INCLUDE"
+ fi
+ AC_CHECK_HEADER(libpq-fe.h, [
+ if test "$PGSQL_INCLUDE" != ""; then
+ PGSQL_CFLAGS="$PGSQL_CFLAGS -I$PGSQL_INCLUDE"
+ fi
+ if test "$PGSQL_LIBDIR" != ""; then
+ PGSQL_LIBS="$PGSQL_LIBS -L$PGSQL_LIBDIR"
+ fi
+ PGSQL_LIBS="$PGSQL_LIBS -lpq"
+ AC_DEFINE(HAVE_PGSQL,, [Build with PostgreSQL support])
+ found_sql_drivers="$found_sql_drivers pgsql"
+ ], [
+ if test $want_pgsql = yes; then
+ AC_ERROR([Can't build with PostgreSQL support: libpq-fe.h not found])
+ fi
+ ])
+ CPPFLAGS=$old_CPPFLAGS
+ ], [
+ if test $want_pgsql = yes; then
+ AC_ERROR([Can't build with PostgreSQL support: libpq not found])
+ fi
+ ])
+ LIBS=$old_LIBS
+ fi
+])