]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/autoconf/bacula-macros/db.m4
Backport copyright changes
[bacula/bacula] / bacula / autoconf / bacula-macros / db.m4
index 5907f6c18f84e9a7e3c2638f37ced664496f6579..d9d4e1fcf7ebf2d7d90cd4522035295a6d1c1daa 100644 (file)
-AC_DEFUN(BA_CHECK_MYSQL_DB,
+#
+# Author: Kern Sibbald, 2008
+# License: BSD 2-Clause
+#
+AC_DEFUN([BA_CHECK_DBI_DB],
+[
+AC_MSG_CHECKING(for DBI support)
+AC_ARG_WITH(dbi,
+AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD base install directory, default is to search through a number of common places for the DBI files.]),
+[
+  if test "$withval" != "no"; then
+     if test "$withval" = "yes"; then
+        if test -f /usr/local/include/dbi/dbi.h; then
+           DBI_INCDIR=/usr/local/dbi/include
+           if test -d /usr/local/lib64; then
+              DBI_LIBDIR=/usr/local/lib64
+           else
+              DBI_LIBDIR=/usr/local/lib
+           fi
+           DBI_BINDIR=/usr/local/bin
+        elif test -f /usr/include/dbi/dbi.h; then
+           DBI_INCDIR=/usr/include
+           if test -d /usr/lib64; then
+              DBI_LIBDIR=/usr/lib64
+           else
+              DBI_LIBDIR=/usr/lib
+           fi
+           DBI_BINDIR=/usr/bin
+        elif test -f $prefix/include/dbi/dbi.h; then
+           DBI_INCDIR=$prefix/include
+           if test -d $prefix/lib64; then
+              DBI_LIBDIR=$prefix/lib64
+           else
+              DBI_LIBDIR=$prefix/lib
+           fi
+           DBI_BINDIR=$prefix/bin
+        else
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Unable to find dbi.h in standard locations)
+        fi
+        if test -d /usr/local/lib/dbd; then
+           DRIVERDIR=/usr/local/lib/dbd
+           if test -d /usr/local/lib64/dbd; then
+              DRIVERDIR=/usr/local/lib64/dbd
+           else
+              DRIVERDIR=/usr/local/lib/dbd
+           fi
+        elif test -d /usr/lib/dbd; then
+           DRIVERDIR=/usr/lib/dbd
+           if test -d /usr/lib64/dbd; then
+              DRIVERDIR=/usr/lib64/dbd
+           else
+              DRIVERDIR=/usr/lib/dbd
+           fi
+        elif test -d $prefix/lib/dbd; then
+           if test -d $prefix/lib64/dbd; then
+              DRIVERDIR=$prefix/lib64/dbd
+           else
+              DRIVERDIR=$prefix/lib/dbd
+           fi
+        elif test -d /usr/local/lib64/dbd; then
+           DRIVERDIR=/usr/local/lib64/dbd
+        elif test -d /usr/lib64/dbd; then
+           DRIVERDIR=/usr/lib64/dbd
+        elif test -d $prefix/lib64/dbd; then
+           DRIVERDIR=$prefix/lib64/dbd
+        else
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Unable to find DBD drivers in standard locations)
+        fi
+     else
+        if test -f $withval/dbi.h; then
+           DBI_INCDIR=$withval
+           DBI_LIBDIR=$withval
+           DBI_BINDIR=$withval
+        elif test -f $withval/include/dbi/dbi.h; then
+           DBI_INCDIR=$withval/include
+           if test -d $withval/lib64; then
+              DBI_LIBDIR=$withval/lib64
+           else
+              DBI_LIBDIR=$withval/lib
+           fi
+           DBI_BINDIR=$withval/bin
+        else
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Invalid DBI directory $withval - unable to find dbi.h under $withval)
+        fi
+        if test -d $withval/dbd; then
+           DRIVERDIR=$withval/dbd
+        elif test -d $withval/lib/; then
+           if test -d $withval/lib64/dbd; then
+              DRIVERDIR=$withval/lib64/dbd
+           else
+              DRIVERDIR=$withval/lib/dbd
+           fi
+        elif test -d $withval/lib64/dbd; then
+           DRIVERDIR=$withval/lib64/dbd
+        else
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
+        fi
+     fi
+     DBI_INCLUDE=-I$DBI_INCDIR
+     if test x$use_libtool != xno; then
+        DBI_LIBS="-R $DBI_LIBDIR -L$DBI_LIBDIR -ldbi"
+     else
+        DBI_LIBS="-L$DBI_LIBDIR -ldbi"
+     fi
+     DBI_LIB=$DBI_LIBDIR/libdbi.a
+     DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
+     DB_LIBS="${DB_LIBS} ${DBI_LIBS}"
+
+     AC_DEFINE(HAVE_DBI, 1, [Set if you have the DBI driver])
+     AC_MSG_RESULT(yes)
+
+     if test -z "${db_backends}"; then
+         db_backends="DBI"
+     else
+         db_backends="${db_backends} DBI"
+     fi
+     if test -z "${DB_BACKENDS}" ; then
+        DB_BACKENDS="dbi"
+     else
+        DB_BACKENDS="${DB_BACKENDS} dbi"
+     fi
+     uncomment_dbi=" "
+
+     dnl -------------------------------------------
+     dnl Push the DB_PROG onto the stack of supported database backends for DBI
+     dnl -------------------------------------------
+     DB_BACKENDS="${DB_BACKENDS} ${DB_PROG}"
+
+     dnl -------------------------------------------
+     dnl Check if dbi supports batch mode
+     dnl -------------------------------------------
+     if test "x$support_batch_insert" = "xyes"; then
+         if test $DB_PROG = postgresql; then
+             AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE))
+             AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY))
+             test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"
+             pkg=$?
+             if test $pkg = 0; then
+                 AC_DEFINE(HAVE_DBI_BATCH_FILE_INSERT, 1, [Set if DBI DB batch insert code enabled])
+             fi
+         fi
+     fi
+  else
+     AC_MSG_RESULT(no)
+  fi
+],[
+  AC_MSG_RESULT(no)
+])
+
+AC_SUBST(DBI_LIBS)
+AC_SUBST(DBI_INCLUDE)
+AC_SUBST(DBI_BINDIR)
+AC_SUBST(DBI_DBD_DRIVERDIR)
+
+])
+
+AC_DEFUN([BA_CHECK_DBI_DRIVER],
+[
+db_prog=no
+AC_MSG_CHECKING(for DBI drivers support)
+AC_ARG_WITH(dbi-driver,
+AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVER is the one DBI driver like Mysql, Postgresql, others. Default is to not configure any driver.]),
+[
+  if test "$withval" != "no"; then
+     case $withval in
+        "mysql")
+           db_prog="mysql"
+           if test -f /usr/local/mysql/bin/mysql; then
+              MYSQL_BINDIR=/usr/local/mysql/bin
+              if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
+                 -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
+              else
+                 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
+              fi
+           elif test -f /usr/bin/mysql; then
+              MYSQL_BINDIR=/usr/bin
+              if test -f /usr/lib64/mysql/libmysqlclient_r.a \
+                  -o -f /usr/lib64/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=/usr/lib64/mysql
+              elif test -f /usr/lib/mysql/libmysqlclient_r.a \
+                  -o -f /usr/lib/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=/usr/lib/mysql
+              else
+                  MYSQL_LIBDIR=/usr/lib
+              fi
+           elif test -f /usr/local/bin/mysql; then
+              MYSQL_BINDIR=/usr/local/bin
+              if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
+                  -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=/usr/local/lib64/mysql
+              elif test -f /usr/local/lib/mysql/libmysqlclient_r.a \
+                  -o -f /usr/local/lib/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=/usr/local/lib/mysql
+              else
+                  MYSQL_LIBDIR=/usr/local/lib
+              fi
+           elif test -f $withval/bin/mysql; then
+              MYSQL_BINDIR=$withval/bin
+              if test -f $withval/lib64/mysql/libmysqlclient_r.a \
+                  -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=$withval/lib64/mysql
+              elif test -f $withval/lib64/libmysqlclient_r.a \
+                  -o -f $withval/lib64/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=$withval/lib64
+              elif test -f $withval/lib/libmysqlclient_r.a \
+                  -o -f $withval/lib/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=$withval/lib/
+              else
+                  MYSQL_LIBDIR=$withval/lib/mysql
+              fi
+           elif test -f $prefix/lib/mysql55/bin/mysql; then
+              MYSQL_BINDIR=$prefix/lib/mysql55/bin
+              if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \
+                  -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=$prefix/lib/mysql55/mysql
+              fi
+           elif test -f $prefix/lib/mysql51/bin/mysql; then
+              MYSQL_BINDIR=$prefix/lib/mysql51/bin
+              if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \
+                  -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then
+                  MYSQL_LIBDIR=$prefix/lib/mysql51/mysql
+              fi
+           else
+              AC_MSG_RESULT(no)
+              AC_MSG_ERROR(Unable to find mysql in standard locations)
+           fi
+           if test -f $SQL_LIBDIR/libmysqlclient_r.so; then
+              DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.so
+           else
+              DB_PROG_LIB=$SQL_LIBDIR/libmysqlclient_r.a
+           fi
+        ;;
+        "postgresql")
+           db_prog="postgresql"
+           PG_CONFIG=`which pg_config 2>/dev/null`
+           if test -n "$PG_CONFIG"; then
+              POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
+              POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
+           elif test -f /usr/local/bin/psql; then
+              POSTGRESQL_BINDIR=/usr/local/bin
+              if test -d /usr/local/lib64; then
+                 POSTGRESQL_LIBDIR=/usr/local/lib64
+              else
+                 POSTGRESQL_LIBDIR=/usr/local/lib
+              fi
+           elif test -f /usr/bin/psql; then
+              POSTGRESQL_BINDIR=/usr/local/bin
+              if test -d /usr/lib64/postgresql; then
+                 POSTGRESQL_LIBDIR=/usr/lib64/postgresql
+              elif test -d /usr/lib/postgresql; then
+                 POSTGRESQL_LIBDIR=/usr/lib/postgresql
+              elif test -d /usr/lib64; then
+                 POSTGRESQL_LIBDIR=/usr/lib64
+              else
+                 POSTGRESQL_LIBDIR=/usr/lib
+              fi
+           elif test -f $withval/bin/psql; then
+              POSTGRESQL_BINDIR=$withval/bin
+              if test -d $withval/lib64; then
+                 POSTGRESQL_LIBDIR=$withval/lib64
+              else
+                 POSTGRESQL_LIBDIR=$withval/lib
+              fi
+           else
+              AC_MSG_RESULT(no)
+              AC_MSG_ERROR(Unable to find psql in standard locations)
+           fi
+           if test -f $POSTGRESQL_LIBDIR/libpq.so; then
+              DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.so
+           else
+              DB_PROG_LIB=$POSTGRESQL_LIBDIR/libpq.a
+           fi
+        ;;
+        "sqlite3")
+           db_prog="sqlite3"
+           if test -f /usr/local/bin/sqlite3; then
+              SQLITE_BINDIR=/usr/local/bin
+              if test -d /usr/local/lib64; then
+                 SQLITE_LIBDIR=/usr/local/lib64
+              else
+                 SQLITE_LIBDIR=/usr/local/lib
+              fi
+           elif test -f /usr/bin/sqlite3; then
+              SQLITE_BINDIR=/usr/bin
+              if test -d /usr/lib64; then
+                 SQLITE_LIBDIR=/usr/lib64
+              else
+                 SQLITE_LIBDIR=/usr/lib
+              fi
+           elif test -f $withval/bin/sqlite3; then
+              SQLITE_BINDIR=$withval/bin
+              if test -d $withval/lib64; then
+                 SQLITE_LIBDIR=$withval/lib64
+              else
+                 SQLITE_LIBDIR=$withval/lib
+              fi
+           else
+              AC_MSG_RESULT(no)
+              AC_MSG_ERROR(Unable to find sqlite in standard locations)
+           fi
+           if test -f $SQLITE_LIBDIR/libsqlite3.so; then
+              DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.so
+           else
+              DB_PROG_LIB=$SQLITE_LIBDIR/libsqlite3.a
+           fi
+        ;;
+        *)
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Unable to set DBI driver. $withval is not supported)
+        ;;
+     esac
+
+     AC_MSG_RESULT(yes)
+     DB_PROG=$db_prog
+  else
+     AC_MSG_RESULT(no)
+  fi
+],[
+  AC_MSG_RESULT(no)
+])
+
+AC_SUBST(MYSQL_BINDIR)
+AC_SUBST(POSTGRESQL_BINDIR)
+AC_SUBST(SQLITE_BINDIR)
+AC_SUBST(DB_PROG)
+AC_SUBST(DB_PROG_LIB)
+
+])
+
+
+AC_DEFUN([BA_CHECK_MYSQL_DB],
 [
-db_found=no
 AC_MSG_CHECKING(for MySQL support)
 AC_ARG_WITH(mysql,
-[
-  --with-mysql@<:@=DIR@:>@      Include MySQL support.  DIR is the MySQL base
-                          install directory, default is to search through
-                          a number of common places for the MySQL files.],
+AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
 [
   if test "$withval" != "no"; then
         if test "$withval" = "yes"; then
+#
+# This code is very broken on older systems
+#
+#           MYSQL_CONFIG=`which mysql_config 2>/dev/null`
+#           if test "x${MYSQL_CONFIG}" != x; then
+#              MYSQL_BINDIR="${MYSQL_CONFIG%/*}"
+#              ${MYSQL_CONFIG} --variable=pkglibdir > /dev/null 2>&1
+#              if test $? = 0 ; then
+#                 MYSQL_LIBDIR=`${MYSQL_CONFIG} --variable=pkglibdir`
+#                 MYSQL_INCDIR=`${MYSQL_CONFIG} --variable=pkgincludedir`
+#              else
+#                 MYSQL_LIBDIR=`${MYSQL_CONFIG} --libs_r | sed -e 's/.*-L//' -e 's/ .*//'`
+#                 MYSQL_INCDIR=`${MYSQL_CONFIG} --include | sed -e 's/-I//'`
+#              fi
+#           fi
+#           if [ "x${MYSQL_LIB}" = x -o "x${MYSQL_INCDIR}" = x ]; then
            if test -f /usr/local/mysql/include/mysql/mysql.h; then
-                   MYSQL_INCDIR=/usr/local/mysql/include/mysql
-                   if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
-                        -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
-                           MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
-                   else
-                           MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
-                   fi
-                   MYSQL_BINDIR=/usr/local/mysql/bin
+              MYSQL_INCDIR=/usr/local/mysql/include/mysql
+              if test -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.a \
+                      -o -f /usr/local/mysql/lib64/mysql/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/local/mysql/lib64/mysql
+              else
+                 MYSQL_LIBDIR=/usr/local/mysql/lib/mysql
+              fi
+              MYSQL_BINDIR=/usr/local/mysql/bin
            elif test -f /usr/include/mysql/mysql.h; then
-                   MYSQL_INCDIR=/usr/include/mysql
-                   if test -f /usr/lib64/mysql/libmysqlclient_r.a \
-                        -o -f /usr/lib64/mysql/libmysqlclient_r.so; then  
-                           MYSQL_LIBDIR=/usr/lib64/mysql
-                   elif test -f /usr/lib/mysql/libmysqlclient_r.a \
-                          -o -f /usr/lib/mysql/libmysqlclient_r.so; then
-                           MYSQL_LIBDIR=/usr/lib/mysql
-                   else
-                           MYSQL_LIBDIR=/usr/lib
-                   fi
-                   MYSQL_BINDIR=/usr/bin
-           elif test -f /usr/include/mysql.h; then
-                   MYSQL_INCDIR=/usr/include
-                   if test -f /usr/lib64/libmysqlclient_r.a \
+              MYSQL_INCDIR=/usr/include/mysql
+              if test -f /usr/lib64/mysql/libmysqlclient_r.a \
+                      -o -f /usr/lib64/mysql/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/lib64/mysql
+              elif test -f /usr/lib64/libmysqlclient_r.a \
                         -o -f /usr/lib64/libmysqlclient_r.so; then
-                           MYSQL_LIBDIR=/usr/lib64
-                   else
-                           MYSQL_LIBDIR=/usr/lib
-                   fi
-                   MYSQL_BINDIR=/usr/bin
+                 MYSQL_LIBDIR=/usr/lib64
+              elif test -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.a \
+                        -o -f /usr/lib/x86_64-linux-gnu/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/lib/x86_64-linux-gnu
+              elif test -f /usr/lib/mysql/libmysqlclient_r.a \
+                        -o -f /usr/lib/mysql/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/lib/mysql
+              else
+                 MYSQL_LIBDIR=/usr/lib
+              fi
+              MYSQL_BINDIR=/usr/bin
+           elif test -f /usr/include/mysql.h; then
+              MYSQL_INCDIR=/usr/include
+              if test -f /usr/lib64/libmysqlclient_r.a \
+                      -o -f /usr/lib64/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/lib64
+              else
+                 MYSQL_LIBDIR=/usr/lib
+              fi
+              MYSQL_BINDIR=/usr/bin
            elif test -f /usr/local/include/mysql/mysql.h; then
-                   MYSQL_INCDIR=/usr/local/include/mysql
-                   if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
-                        -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
-                           MYSQL_LIBDIR=/usr/local/lib64/mysql
-                   else
-                           MYSQL_LIBDIR=/usr/local/lib/mysql
-                   fi
-                   MYSQL_BINDIR=/usr/local/bin
+              MYSQL_INCDIR=/usr/local/include/mysql
+              if test -f /usr/local/lib64/mysql/libmysqlclient_r.a \
+                      -o -f /usr/local/lib64/mysql/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/local/lib64/mysql
+              else
+                 MYSQL_LIBDIR=/usr/local/lib/mysql
+              fi
+              MYSQL_BINDIR=/usr/local/bin
            elif test -f /usr/local/include/mysql.h; then
-                   MYSQL_INCDIR=/usr/local/include
-                   if test -f /usr/local/lib64/libmysqlclient_r.a \
-                        -o -f /usr/local/lib64/libmysqlclient_r.so; then
-                           MYSQL_LIBDIR=/usr/local/lib64
-                   else
-                           MYSQL_LIBDIR=/usr/local/lib
-                   fi
-                   MYSQL_BINDIR=/usr/local/bin
+              MYSQL_INCDIR=/usr/local/include
+              if test -f /usr/local/lib64/libmysqlclient_r.a \
+                      -o -f /usr/local/lib64/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=/usr/local/lib64
+              else
+                 MYSQL_LIBDIR=/usr/local/lib
+              fi
+              MYSQL_BINDIR=/usr/local/bin
            else
               AC_MSG_RESULT(no)
               AC_MSG_ERROR(Unable to find mysql.h in standard locations)
@@ -68,12 +421,14 @@ AC_ARG_WITH(mysql,
               if test -f $withval/lib64/mysql/libmysqlclient_r.a \
                    -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
                  MYSQL_LIBDIR=$withval/lib64/mysql
+              elif test -f $withval/lib64/libmysqlclient_r.a \
+                   -o -f $withval/lib64/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=$withval/lib64
+              elif test -f $withval/lib/libmysqlclient_r.a \
+                   -o -f $withval/lib/libmysqlclient_r.so; then
+                 MYSQL_LIBDIR=$withval/lib
               else
                  MYSQL_LIBDIR=$withval/lib/mysql
-                 # Solaris ...
-                 if test -f $withval/lib/libmysqlclient_r.so; then
-                    MYSQL_LIBDIR=$withval/lib
-                 fi
               fi
               MYSQL_BINDIR=$withval/bin
            elif test -f $withval/include/mysql.h; then
@@ -85,38 +440,100 @@ AC_ARG_WITH(mysql,
                  MYSQL_LIBDIR=$withval/lib
               fi
               MYSQL_BINDIR=$withval/bin
+           elif test -f $withval/mysql.h; then
+              dnl MacPorts on OSX has a special MySQL Layout. See #2079
+              MYSQL_INCDIR=$withval
+              AC_MSG_NOTICE(Got with-mysql variable $MYSQL_INCDIR checking MySQL version)
+              case $MYSQL_INCDIR in
+                 *mysql55*)
+                     AC_MSG_NOTICE(Assuming MacPorts MySQL 5.5 variant installed)
+                     dnl with-mysql given contains mysql55 - assuming OSX MacPorts MySQL55 variant
+                     if test -f $prefix/lib/mysql55/mysql/libmysqlclient_r.a \
+                          -o -f $prefix/lib/mysql55/mysql/libmysqlclient_r.so; then
+                        AC_MSG_NOTICE(Found MySQL 5.5 library in $prefix/lib/mysql55/mysql)
+                        MYSQL_LIBDIR=$prefix/lib/mysql55/mysql
+                     fi
+                     MYSQL_BINDIR=$prefix/lib/mysql55/bin
+                 ;;
+                 *mysql51*)
+                     AC_MSG_NOTICE(Assuming MacPorts MySQL 5.1 variant installed)
+                     dnl with-mysql contains mysql51 - assuming OSX MacPorts MySQL51 variant
+                     if test -f $prefix/lib/mysql51/mysql/libmysqlclient_r.a \
+                          -o -f $prefix/lib/mysql51/mysql/libmysqlclient_r.so; then
+                        AC_MSG_NOTICE(Found MySQL 5.1 library in $prefix/lib/mysql55/mysql)
+                        MYSQL_LIBDIR=$prefix/lib/mysql51/mysql
+                     fi
+                     MYSQL_BINDIR=$prefix/lib/mysql51/bin
+                 ;;
+              esac
+              if test -z "${MYSQL_LIBDIR}" ; then
+                 AC_MSG_RESULT(no)
+                 AC_MSG_ERROR(MySQL $withval - unable to find MySQL libraries)
+              fi
            else
               AC_MSG_RESULT(no)
               AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
            fi
         fi
-    SQL_INCLUDE=-I$MYSQL_INCDIR
-    if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
-         -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
-       SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
-       AC_DEFINE(HAVE_THREAD_SAFE_MYSQL)
-    fi
-    SQL_BINDIR=$MYSQL_BINDIR
-    SQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
-
-    AC_DEFINE(HAVE_MYSQL)
-    AC_MSG_RESULT(yes)
-    db_found=yes
-    support_mysql=yes
-    db_type=MySQL
-    DB_TYPE=mysql
+     MYSQL_INCLUDE=-I$MYSQL_INCDIR
+     if test -f $MYSQL_LIBDIR/libmysqlclient_r.a \
+          -o -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
+        if test x$use_libtool != xno; then
+           MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient_r -lz"
+        else
+           MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
+        fi
+        DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+     fi
+     MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
 
+     AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
+     AC_MSG_RESULT(yes)
+
+     if test -z "${db_backends}" ; then
+         db_backends="MySQL"
+     else
+         db_backends="${db_backends} MySQL"
+     fi
+     if test -z "${DB_BACKENDS}" ; then
+         DB_BACKENDS="mysql"
+     else
+         DB_BACKENDS="${DB_BACKENDS} mysql"
+     fi
+
+     dnl -------------------------------------------
+     dnl Check if mysql supports batch mode
+     dnl -------------------------------------------
+     if test "x$support_batch_insert" = "xyes"; then
+         dnl For mysql checking
+         saved_LDFLAGS="${LDFLAGS}"
+         LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
+         saved_LIBS="${LIBS}"
+         LIBS="${saved_LIBS} -lz"
+
+         AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
+         if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
+             if test -z "${batch_insert_db_backends}"; then
+                 batch_insert_db_backends="MySQL"
+             else
+                 batch_insert_db_backends="${batch_insert_db_backends} MySQL"
+             fi
+         fi
+
+         dnl Revert after mysql checks
+         LDFLAGS="${saved_LDFLAGS}"
+         LIBS="${saved_LIBS}"
+     fi
   else
-        AC_MSG_RESULT(no)
+     AC_MSG_RESULT(no)
   fi
-]
-)
+],[
+  AC_MSG_RESULT(no)
+])
 
+AC_MSG_CHECKING(for MySQL embedded support)
 AC_ARG_WITH(embedded-mysql,
-[
-  --with-embedded-mysql@<:@=DIR@:>@ Include MySQL support.  DIR is the MySQL base
-                          install directory, default is to search through
-                          a number of common places for the MySQL files.],
+AC_HELP_STRING([--with-embedded-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the MySQL base install directory, default is to search through a number of common places for the MySQL files.]),
 [
   if test "$withval" != "no"; then
         if test "$withval" = "yes"; then
@@ -186,124 +603,133 @@ AC_ARG_WITH(embedded-mysql,
                    AC_MSG_ERROR(Invalid MySQL directory $withval - unable to find mysql.h under $withval)
                 fi
         fi
-    SQL_INCLUDE=-I$MYSQL_INCDIR
-    SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
-    SQL_BINDIR=$MYSQL_BINDIR
-    SQL_LIB=$MYSQL_LIBDIR/libmysqld.a
-
-    AC_DEFINE(HAVE_MYSQL)
-    AC_DEFINE(HAVE_EMBEDDED_MYSQL)
-    AC_MSG_RESULT(yes)
-    db_found=yes
-    support_mysql=yes
-    db_type=MySQL
-    DB_TYPE=mysql
+     MYSQL_INCLUDE=-I$MYSQL_INCDIR
+     if test x$use_libtool != xno; then
+        MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
+     else
+        MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqld -lz -lm -lcrypt"
+     fi
+     MYSQL_LIB=$MYSQL_LIBDIR/libmysqld.a
+     DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+
+     AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
+     AC_DEFINE(HAVE_EMBEDDED_MYSQL, 1, [Set if you have an Embedded MySQL Database])
+     AC_MSG_RESULT(yes)
 
+     if test -z "${db_backends}"; then
+         db_backends="MySQL"
+     else
+         db_backends="${db_backends} MySQL"
+     fi
+     if test -z "${DB_BACKENDS}"; then
+         DB_BACKENDS="mysql"
+     else
+         DB_BACKENDS="${DB_BACKENDS} mysql"
+     fi
+
+     dnl -------------------------------------------
+     dnl Check if mysql supports batch mode
+     dnl -------------------------------------------
+     if test "x$support_batch_insert" = "xyes"; then
+         dnl For mysql checking
+         saved_LDFLAGS="${LDFLAGS}"
+         LDFLAGS="${saved_LDFLAGS} -L$MYSQL_LIBDIR"
+         saved_LIBS="${LIBS}"
+         LIBS="${saved_LIBS} -lz -lm -lcrypt"
+
+         AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Set if have mysql_thread_safe]))
+         if test "x$ac_cv_lib_mysqlclient_r_mysql_thread_safe" = "xyes"; then
+             if test -z "${batch_insert_db_backends}"; then
+                 batch_insert_db_backends="MySQL"
+             else
+                 batch_insert_db_backends="${batch_insert_db_backends} MySQL"
+             fi
+         fi
+
+         dnl Revert after mysql checks
+         LDFLAGS="${saved_LDFLAGS}"
+         LIBS="${saved_LIBS}"
+     fi
   else
-        AC_MSG_RESULT(no)
+     AC_MSG_RESULT(no)
   fi
-]
-)
+],[
+  AC_MSG_RESULT(no)
+])
 
+AC_SUBST(MYSQL_LIBS)
+AC_SUBST(MYSQL_INCLUDE)
+AC_SUBST(MYSQL_BINDIR)
 
-AC_SUBST(SQL_LFLAGS)
-AC_SUBST(SQL_INCLUDE)
-AC_SUBST(SQL_BINDIR)
-  
 ])
 
-
-AC_DEFUN(BA_CHECK_SQLITE_DB,
+AC_DEFUN([BA_CHECK_INGRES_DB],
 [
-db_found=no
-AC_MSG_CHECKING(for SQLite support)
-AC_ARG_WITH(sqlite,
-[
-  --with-sqlite@<:@=DIR@:>@     Include SQLite support.  DIR is the SQLite base
-                          install directory, default is to search through
-                          a number of common places for the SQLite files.],
+AC_MSG_CHECKING(for Ingres support)
+AC_ARG_WITH(ingres,
+AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the Ingres base install directory, default is to search through a number of common places for the Ingres files.]),
 [
   if test "$withval" != "no"; then
      if test "$withval" = "yes"; then
-        if test -f /usr/local/include/sqlite.h; then
-           SQLITE_INCDIR=/usr/local/include
-           if test -d /usr/local/lib64; then
-              SQLITE_LIBDIR=/usr/local/lib64
-           else
-              SQLITE_LIBDIR=/usr/local/lib
-           fi
-           SQLITE_BINDIR=/usr/local/bin
-        elif test -f /usr/include/sqlite.h; then
-           SQLITE_INCDIR=/usr/include
-           if test -d /usr/lib64; then
-              SQLITE_LIBDIR=/usr/lib64
-           else
-              SQLITE_LIBDIR=/usr/lib
-           fi
-           SQLITE_BINDIR=/usr/bin      
-        elif test -f $prefix/include/sqlite.h; then
-           SQLITE_INCDIR=$prefix/include
-           if test -d $prefix/lib64; then
-              SQLITE_LIBDIR=$prefix/lib64
-           else
-              SQLITE_LIBDIR=$prefix/lib
-           fi
-           SQLITE_BINDIR=$prefix/bin      
+        if test -f ${II_SYSTEM}/files/eqdefc.h; then
+           INGRES_INCDIR=${II_SYSTEM}/files
+           INGRES_LIBDIR=${II_SYSTEM}/lib
+           INGRES_BINDIR=${II_SYSTEM}/bin
+        elif test -f ${II_SYSTEM}/ingres/files/eqdefc.h; then
+           INGRES_INCDIR=${II_SYSTEM}/ingres/files
+           INGRES_LIBDIR=${II_SYSTEM}/ingres/lib
+           INGRES_BINDIR=${II_SYSTEM}/ingres/bin
         else
            AC_MSG_RESULT(no)
-           AC_MSG_ERROR(Unable to find sqlite.h in standard locations)
+           AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
         fi
      else
-        if test -f $withval/sqlite.h; then
-           SQLITE_INCDIR=$withval
-           SQLITE_LIBDIR=$withval
-           SQLITE_BINDIR=$withval
-        elif test -f $withval/include/sqlite.h; then
-           SQLITE_INCDIR=$withval/include
-           if test -d $withval/lib64; then
-              SQLITE_LIBDIR=$withval/lib64
-           else
-              SQLITE_LIBDIR=$withval/lib
-           fi
-           SQLITE_BINDIR=$withval/bin
+        if test -f $withval/files/eqdefc.h; then
+           INGRES_INCDIR=$withval/files
+           INGRES_LIBDIR=$withval/lib
+           INGRES_BINDIR=$withval/bin
         else
            AC_MSG_RESULT(no)
-           AC_MSG_ERROR(Invalid SQLite directory $withval - unable to find sqlite.h under $withval)
+           AC_MSG_ERROR(Invalid Ingres directory $withval - unable to find Ingres headers under $withval)
         fi
      fi
-     SQL_INCLUDE=-I$SQLITE_INCDIR
-     SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite"
-     SQL_BINDIR=$SQLITE_BINDIR
-     SQL_LIB=$SQLITE_LIBDIR/libsqlite.a
-
-     AC_DEFINE(HAVE_SQLITE)
+     INGRES_INCLUDE=-I$INGRES_INCDIR
+     if test x$use_libtool != xno; then
+        INGRES_LIBS="-R $INGRES_LIBDIR -L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
+     else
+        INGRES_LIBS="-L$INGRES_LIBDIR -lq.1 -lcompat.1 -lframe.1"
+     fi
+     DB_LIBS="${DB_LIBS} ${INGRES_LIBS}"
+     AC_DEFINE(HAVE_INGRES, 1, [Set if have Ingres Database])
      AC_MSG_RESULT(yes)
-     db_found=yes
-     support_sqlite=yes
-     db_type=SQLite
-     DB_TYPE=sqlite
 
+     if test -z "${db_backends}"; then
+         db_backends="Ingres"
+     else
+         db_backends="${db_backends} Ingres"
+     fi
+     if test -z "${DB_BACKENDS}"; then
+         DB_BACKENDS="ingres"
+     else
+         DB_BACKENDS="${DB_BACKENDS} ingres"
+     fi
   else
      AC_MSG_RESULT(no)
   fi
 ],[
   AC_MSG_RESULT(no)
 ])
-AC_SUBST(SQL_LFLAGS)
-AC_SUBST(SQL_INCLUDE)
-AC_SUBST(SQL_BINDIR)
-  
+
+AC_SUBST(INGRES_LIBS)
+AC_SUBST(INGRES_INCLUDE)
+AC_SUBST(INGRES_BINDIR)
 ])
 
-AC_DEFUN(BA_CHECK_SQLITE3_DB,
+AC_DEFUN([BA_CHECK_SQLITE3_DB],
 [
-db_found=no
 AC_MSG_CHECKING(for SQLite3 support)
 AC_ARG_WITH(sqlite3,
-[
-  --with-sqlite3@<:@=DIR@:>@    Include SQLite3 support.  DIR is the SQLite3 base
-                          install directory, default is to search through
-                          a number of common places for the SQLite3 files.],
+AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is the SQLite3 base install directory, default is to search through a number of common places for the SQLite3 files.]),
 [
   if test "$withval" != "no"; then
      if test "$withval" = "yes"; then
@@ -322,7 +748,7 @@ AC_ARG_WITH(sqlite3,
            else
               SQLITE_LIBDIR=/usr/lib
            fi
-           SQLITE_BINDIR=/usr/bin      
+           SQLITE_BINDIR=/usr/bin
         elif test -f $prefix/include/sqlite3.h; then
            SQLITE_INCDIR=$prefix/include
            if test -d $prefix/lib64; then
@@ -330,7 +756,7 @@ AC_ARG_WITH(sqlite3,
            else
               SQLITE_LIBDIR=$prefix/lib
            fi
-           SQLITE_BINDIR=$prefix/bin      
+           SQLITE_BINDIR=$prefix/bin
         else
            AC_MSG_RESULT(no)
            AC_MSG_ERROR(Unable to find sqlite3.h in standard locations)
@@ -353,48 +779,72 @@ AC_ARG_WITH(sqlite3,
            AC_MSG_ERROR(Invalid SQLite3 directory $withval - unable to find sqlite3.h under $withval)
         fi
      fi
-     SQL_INCLUDE=-I$SQLITE_INCDIR
-     SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite3"
-     SQL_BINDIR=$SQLITE_BINDIR
-     SQL_LIB=$SQLITE_LIBDIR/libsqlite3.a
+     SQLITE_INCLUDE=-I$SQLITE_INCDIR
+     if test x$use_libtool != xno; then
+        SQLITE_LIBS="-R $SQLITE_LIBDIR -L$SQLITE_LIBDIR -lsqlite3"
+     else
+        SQLITE_LIBS="-L$SQLITE_LIBDIR -lsqlite3"
+     fi
+     SQLITE_LIB=$SQLITE_LIBDIR/libsqlite3.a
+     DB_LIBS="${DB_LIBS} ${SQLITE_LIBS}"
 
-     AC_DEFINE(HAVE_SQLITE3)
+     AC_DEFINE(HAVE_SQLITE3, 1, [Set if you have an SQLite3 Database])
      AC_MSG_RESULT(yes)
-     db_found=yes
-     support_sqlite3=yes
-     db_type=SQLite3
-     DB_TYPE=sqlite3
 
+     if test -z "${db_backends}"; then
+         db_backends="SQLite3"
+     else
+         db_backends="${db_backends} SQLite3"
+     fi
+     if test -z "${DB_BACKENDS}"; then
+         DB_BACKENDS="sqlite3"
+     else
+         DB_BACKENDS="${DB_BACKENDS} sqlite3"
+     fi
+
+     dnl -------------------------------------------
+     dnl Check if sqlite supports batch mode
+     dnl -------------------------------------------
+     if test "x$support_batch_insert" = "xyes"; then
+         dnl For sqlite checking
+         saved_LDFLAGS="${LDFLAGS}"
+         LDFLAGS="${saved_LDFLAGS} -lpthread -L$SQLITE_LIBDIR"
+
+         AC_CHECK_LIB(sqlite3, sqlite3_threadsafe, AC_DEFINE(HAVE_SQLITE3_THREADSAFE, 1, [Set if have sqlite3_threadsafe]))
+         if test "x$ac_cv_lib_sqlite3_sqlite3_threadsafe" = "xyes"; then
+             if test -z "${batch_insert_db_backends}"; then
+                 batch_insert_db_backends="SQLite3"
+             else
+                 batch_insert_db_backends="${batch_insert_db_backends} SQLite3"
+             fi
+         fi
+
+         dnl Revert after sqlite checks
+         LDFLAGS="${saved_LDFLAGS}"
+     fi
   else
      AC_MSG_RESULT(no)
   fi
 ],[
   AC_MSG_RESULT(no)
 ])
-AC_SUBST(SQL_LFLAGS)
-AC_SUBST(SQL_INCLUDE)
-AC_SUBST(SQL_BINDIR)
-  
-])
+AC_SUBST(SQLITE_LIBS)
+AC_SUBST(SQLITE_INCLUDE)
+AC_SUBST(SQLITE_BINDIR)
 
+])
 
 
-AC_DEFUN(BA_CHECK_POSTGRESQL_DB,
+AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
 [
-db_found=no
 AC_MSG_CHECKING(for PostgreSQL support)
 AC_ARG_WITH(postgresql,
-[  --with-postgresql@<:@=DIR@:>@      Include PostgreSQL support.  DIR is the PostgreSQL
-                          base install directory, defaults to /usr/local/pgsql],
+AC_HELP_STRING([--with-postgresql@<:@=DIR@:>@], [Include PostgreSQL support. DIR is the PostgreSQL base install directory, @<:@default=/usr/local/pgsql@:>@]),
 [
   if test "$withval" != "no"; then
-      if test "$db_found" = "yes"; then
-          AC_MSG_RESULT(error)
-          AC_MSG_ERROR("You can configure for only one database.");
-      fi
       if test "$withval" = "yes"; then
-          PG_CONFIG=`which pg_config`
-          if test -n "$PG_CONFIG";then
+          PG_CONFIG=`which pg_config 2>/dev/null`
+          if test -n "$PG_CONFIG"; then
               POSTGRESQL_INCDIR=`"$PG_CONFIG" --includedir`
               POSTGRESQL_LIBDIR=`"$PG_CONFIG" --libdir`
               POSTGRESQL_BINDIR=`"$PG_CONFIG" --bindir`
@@ -440,577 +890,89 @@ AC_ARG_WITH(postgresql,
           POSTGRESQL_BINDIR=$withval/bin
       elif test -f $withval/include/postgresql/libpq-fe.h; then
           POSTGRESQL_INCDIR=$withval/include/postgresql
-     if test -d $withval/lib64; then
-         POSTGRESQL_LIBDIR=$withval/lib64
-     else
-         POSTGRESQL_LIBDIR=$withval/lib
-     fi
+          if test -d $withval/lib64; then
+              POSTGRESQL_LIBDIR=$withval/lib64
+          else
+              POSTGRESQL_LIBDIR=$withval/lib
+          fi
           POSTGRESQL_BINDIR=$withval/bin
       else
           AC_MSG_RESULT(no)
           AC_MSG_ERROR(Invalid PostgreSQL directory $withval - unable to find libpq-fe.h under $withval)
       fi
-      POSTGRESQL_LFLAGS="-L$POSTGRESQL_LIBDIR -lpq"
-      AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LFLAGS="$POSTGRESQL_LFLAGS -lcrypt"]))
-      SQL_INCLUDE=-I$POSTGRESQL_INCDIR
-      SQL_LFLAGS=$POSTGRESQL_LFLAGS
-      SQL_BINDIR=$POSTGRESQL_BINDIR
-      SQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
-
-      AC_DEFINE(HAVE_POSTGRESQL)
-      AC_MSG_RESULT(yes)
-      db_found=yes
-      support_postgresql=yes
-      db_type=PostgreSQL
-      DB_TYPE=postgresql
-  else
-      AC_MSG_RESULT(no)
-  fi
-],[
-  AC_MSG_RESULT(no)
-])
-AC_SUBST(SQL_LFLAGS)
-AC_SUBST(SQL_INCLUDE)
-AC_SUBST(SQL_BINDIR)
-
-])
-
-
-
-AC_DEFUN(BA_CHECK_SQL_DB, 
-[AC_MSG_CHECKING(Checking for various databases)
-dnl# --------------------------------------------------------------------------
-dnl# CHECKING FOR VARIOUS DATABASES (thanks to UdmSearch team)
-dnl# --------------------------------------------------------------------------
-dnl Check for some DBMS backend
-dnl NOTE: we can use only one backend at a time
-db_found=no
-DB_TYPE=none
-
-if test x$support_mysql = xyes; then
-   cats=cats
-fi
-
-AC_MSG_CHECKING(for Berkeley DB support)
-AC_ARG_WITH(berkeleydb,
-[
-  --with-berkeleydb@<:@=DIR@:>@ Include Berkeley DB support.  DIR is the Berkeley DB base
-                          install directory, default is to search through
-                          a number of common places for the DB files.],
-[
-  if test "$withval" != "no"; then
-        if test "$withval" = "yes"; then
-                if test -f /usr/include/db.h; then
-                        BERKELEYDB_INCDIR=/usr/include
-                        if test -d /usr/lib64; then
-                                BERKELEYDB_LIBDIR=/usr/lib64
-                        else
-                                BERKELEYDB_LIBDIR=/usr/lib
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h)
-                fi
-        else
-                if test -f $withval/include/db.h; then
-                        BERKELEYDB_INCDIR=$withval/include
-                        if test -d $withval/lib64; then
-                                BERKELEYDB_LIBDIR=$withval/lib64
-                        else
-                                BERKELEYDB_LIBDIR=$withval/lib
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid Berkeley DB directory - unable to find db.h under $withval)
-                fi
-        fi
-    SQL_INCLUDE=-I$BERKELEYDB_INCDIR
-    SQL_LFLAGS="-L$BERKELEYDB_LIBDIR -ldb"
-
-    AC_DEFINE(HAVE_BERKELEY_DB)
-    AC_MSG_RESULT(yes)
-    have_db=yes
-    support_mysql=yes
-    DB_TYPE=BerkelyDB
-
-  else
-        AC_MSG_RESULT(no)
-  fi
-],[
-  AC_MSG_RESULT(no)
-])
-AC_SUBST(SQL_LFLAGS)
-AC_SUBST(SQL_INCLUDE)
-
-if test x$support_berkleydb = xyes; then
-   cats=cats
-fi
-
-
-
-
-AC_MSG_CHECKING(for mSQL support)
-AC_ARG_WITH(msql,
-[  --with-msql@<:@=DIR@:>       Include mSQL support.  DIR is the mSQL base
-                          install directory, defaults to /usr/local/Hughes.],
-[
-  if test "$withval" != "no"; then
-    if test "$have_db" = "yes"; then
-        AC_MSG_RESULT(error)
-        AC_MSG_ERROR("You can configure for only one database.");
-    fi
-
-    if test "$withval" = "yes"; then
-        MSQL_INCDIR=/usr/local/Hughes/include
-        if test -d /usr/local/Hughes/lib64; then
-            MSQL_LIBDIR=/usr/local/Hughes/lib64
-        else
-            MSQL_LIBDIR=/usr/local/Hughes/lib
-        fi
-    else
-        MSQL_INCDIR=$withval/include
-        if test -d $withval/lib64; then
-            MSQL_LIBDIR=$withval/lib64
-        else
-            MSQL_LIBDIR=$withval/lib
-        fi
-    fi
-    MSQL_INCLUDE=-I$MSQL_INCDIR
-    MSQL_LFLAGS="-L$MSQL_LIBDIR -lmsql"
-
-    AC_DEFINE(HAVE_MSQL)
-    AC_MSG_RESULT(yes)
-    have_db=yes
-  else
-        AC_MSG_RESULT(no)
-  fi
-],[
-  AC_MSG_RESULT(no)
-])
-AC_SUBST(MSQL_LFLAGS)
-AC_SUBST(MSQL_INCLUDE)
-
-
-AC_MSG_CHECKING(for iODBC support)
-AC_ARG_WITH(iodbc,
-[  --with-iodbc@<:@=DIR@:>      Include iODBC support.  DIR is the iODBC base
-                          install directory, defaults to /usr/local.],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-        
-        if test "$withval" = "yes"; then
-                withval=/usr/local
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/include/isql.h; then
-                        IODBC_INCDIR=$withval/include
-                        if test -d $withval/lib64; then
-                                IODBC_LIBDIR=$withval/lib64
-                        else
-                                IODBC_LIBDIR=$withval/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid iODBC directory - unable to find isql.h)
-                fi
-                IODBC_LFLAGS="-L$IODBC_LIBDIR -liodbc"
-                IODBC_INCLUDE=-I$IODBC_INCDIR
-                AC_DEFINE(HAVE_IODBC)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(IODBC_LFLAGS)
-AC_SUBST(IODBC_INCLUDE)
-
-
-AC_MSG_CHECKING(for unixODBC support)
-AC_ARG_WITH(unixODBC,
-[  --with-unixODBC@<:@=DIR@:>   Include unixODBC support.  DIR is the unixODBC base
-                          install directory, defaults to /usr/local.],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-        
-        if test "$withval" = "yes"; then
-                withval=/usr/local
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/include/sql.h; then
-                        UNIXODBC_INCDIR=$withval/include
-                        if test -d $withval/lib64; then
-                                UNIXODBC_LIBDIR=$withval/lib64
-                        else
-                                UNIXODBC_LIBDIR=$withval/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid unixODBC directory - unable to find sql.h)
-                fi
-                UNIXODBC_LFLAGS="-L$UNIXODBC_LIBDIR -lodbc"
-                UNIXODBC_INCLUDE=-I$UNIXODBC_INCDIR
-                AC_DEFINE(HAVE_UNIXODBC)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(UNIXODBC_LFLAGS)
-AC_SUBST(UNIXODBC_INCLUDE)
-
-
-AC_MSG_CHECKING(for Solid support)
-AC_ARG_WITH(solid,
-[  --with-solid@<:@=DIR@:>      Include Solid support.  DIR is the Solid base
-                          install directory, defaults to /usr/local.],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-
-        if test "$withval" = "yes"; then
-                withval=/usr/local
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/include/cli0cli.h; then
-                        SOLID_INCDIR=$withval/include
-                        if test -d $withval/lib64; then
-                                SOLID_LIBDIR=$withval/lib64
-                        else
-                                SOLID_LIBDIR=$withval/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid Solid directory - unable to find cli0cli.h)
-                fi
-                SOLID_LFLAGS="-L$SOLID_LIBDIR -lsolcli"
-                SOLID_INCLUDE="-I$SOLID_INCDIR"
-                AC_DEFINE(HAVE_SOLID)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(SOLID_LFLAGS)
-AC_SUBST(SOLID_INCLUDE)
-
-AC_MSG_CHECKING(for OpenLink ODBC support)
-AC_ARG_WITH(openlink,
-[  --with-openlink@<:@=DIR@:>   Include OpenLink ODBC support. 
-                          DIR is the base OpenLink ODBC install directory],
-[
-  if test "$withval" != "no"; then
-        if test "$withval" = "yes"; then
-
-                if test "$have_db" = "yes"; then
-                        AC_MSG_RESULT(error)
-                        AC_MSG_ERROR("You can configure for only one database.");
-                fi
-
-                if test -f /usr/local/virtuoso-ent/odbcsdk/include/isql.h; then
-                        VIRT_INCDIR=/usr/local/virtuoso-ent/odbcsdk/include/
-                        if test -d /usr/local/virtuoso-ent/odbcsdk/lib64/; then
-                                VIRT_LIBDIR=/usr/local/virtuoso-ent/odbcsdk/lib64/
-                        else
-                                VIRT_LIBDIR=/usr/local/virtuoso-ent/odbcsdk/lib/
-                        fi
-                elif test -f /usr/local/virtuoso-lite/odbcsdk/include/isql.h; then
-                        VIRT_INCDIR=/usr/local/virtuoso-lite/odbcsdk/include/
-                        if test -d /usr/local/virtuoso-lite/odbcsdk/lib64/; then
-                                VIRT_LIBDIR=/usr/local/virtuoso-lite/odbcsdk/lib64/
-                        else
-                                VIRT_LIBDIR=/usr/local/virtuoso-lite/odbcsdk/lib/
-                        fi
-                elif test -f /usr/local/virtuoso/odbcsdk/include/isql.h; then
-                        VIRT_INCDIR=/usr/local/virtuoso/odbcsdk/include/
-                        if test -d /usr/local/virtuoso/odbcsdk/lib64/; then
-                                VIRT_LIBDIR=/usr/local/virtuoso/odbcsdk/lib64/
-                        else
-                                VIRT_LIBDIR=/usr/local/virtuoso/odbcsdk/lib/
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h)
-                fi
-        else
-                if test -f $withval/odbcsdk/include/isql.h; then
-                        VIRT_INCDIR=$withval/odbcsdk/include/
-                        if test -d $withval/odbcsdk/lib64/; then
-                                VIRT_LIBDIR=$withval/odbcsdk/lib64/
-                        else
-                                VIRT_LIBDIR=$withval/odbcsdk/lib/
-                        fi
-                elif test -f $withval/include/isql.h; then
-                        VIRT_INCDIR=$withval/include/
-                        if test -d $withval/lib64/; then
-                                VIRT_LIBDIR=$withval/lib64/
-                        else
-                                VIRT_LIBDIR=$withval/lib/
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid OpenLink ODBC directory - unable to find isql.h under $withval)
-                fi
-        fi
-    VIRT_INCLUDE=-I$VIRT_INCDIR
-    VIRT_LFLAGS="-L$VIRT_LIBDIR -liodbc"
-
-    AC_DEFINE(HAVE_VIRT)
-    AC_MSG_RESULT(yes)
-    have_db=yes
-
-  else
-        AC_MSG_RESULT(no)
-  fi
-],[
-  AC_MSG_RESULT(no)
-])
-AC_SUBST(VIRT_LFLAGS)
-AC_SUBST(VIRT_INCLUDE)
-
-
-AC_MSG_CHECKING(for EasySoft ODBC support)
-AC_ARG_WITH(easysoft,
-[  --with-easysoft@<:@=DIR@:>   Include EasySoft ODBC support. 
-                          DIR is the base EasySoft ODBC install directory],
-[
-  if test "$withval" != "no"; then
-        if test "$withval" = "yes"; then
-
-                if test "$have_db" = "yes"; then
-                        AC_MSG_RESULT(error)
-                        AC_MSG_ERROR("You can configure for only one database.");
-                fi
+     AC_DEFINE(HAVE_POSTGRESQL, 1, [Set if you have an PostgreSQL Database])
+     AC_MSG_RESULT(yes)
 
-                if test -f /usr/local/easysoft/oob/client/include/sql.h; then
-                        EASYSOFT_INCDIR=/usr/local/easysoft/oob/client/include/
-                        if test -d /usr/local/easysoft/oob/client/lib64/; then
-                                EASYSOFT_LFLAGS="-L/usr/local/easysoft/oob/client/lib64/ -L/usr/local/easysoft/lib64"
-                        else
-                                EASYSOFT_LFLAGS="-L/usr/local/easysoft/oob/client/lib/ -L/usr/local/easysoft/lib"
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h)
-                fi
-        else
-                if test -f $withval/easysoft/oob/client/include/sql.h; then
-                        EASYSOFT_INCDIR=$withval/easysoft/oob/client/include/
-                        if test -d $withval/easysoft/oob/client/lib64/; then
-                                EASYSOFT_LFLAGS="-L$withval/easysoft/oob/client/lib64/ -L$withval/easysoft/lib64"
-                        else
-                                EASYSOFT_LFLAGS="-L$withval/easysoft/oob/client/lib/ -L$withval/easysoft/lib"
-                        fi
-                else
-                AC_MSG_RESULT(no)
-                AC_MSG_ERROR(Invalid EasySoft ODBC directory - unable to find sql.h under $withval)
-                fi
-        fi
-    EASYSOFT_INCLUDE=-I$EASYSOFT_INCDIR
-    EASYSOFT_LFLAGS="$EASYSOFT_LFLAGS -lesoobclient -lesrpc -lsupport -lextra"
+     POSTGRESQL_INCLUDE=-I$POSTGRESQL_INCDIR
+     if test x$use_libtool != xno; then
+        POSTGRESQL_LIBS="-R $POSTGRESQL_LIBDIR -L$POSTGRESQL_LIBDIR -lpq"
+     else
+        POSTGRESQL_LIBS="-L$POSTGRESQL_LIBDIR -lpq"
+     fi
+     AC_CHECK_FUNC(crypt, , AC_CHECK_LIB(crypt, crypt, [POSTGRESQL_LIBS="$POSTGRESQL_LIBS -lcrypt"]))
+     POSTGRESQL_LIB=$POSTGRESQL_LIBDIR/libpq.a
+     DB_LIBS="${DB_LIBS} ${POSTGRESQL_LIBS}"
 
-    AC_DEFINE(HAVE_EASYSOFT)
-    AC_MSG_RESULT(yes)
-    have_db=yes
+     if test -z "${db_backends}"; then
+         db_backends="PostgreSQL"
+     else
+         db_backends="${db_backends} PostgreSQL"
+     fi
+     if test -z "${DB_BACKENDS}"; then
+         DB_BACKENDS="postgresql"
+     else
+         DB_BACKENDS="${DB_BACKENDS} postgresql"
+     fi
 
+     dnl -------------------------------------------
+     dnl Check if postgresql supports batch mode
+     dnl -------------------------------------------
+     if test "x$support_batch_insert" = "xyes"; then
+         dnl For postgresql checking
+         saved_LDFLAGS="${LDFLAGS}"
+         LDFLAGS="${saved_LDFLAGS} -L$POSTGRESQL_LIBDIR"
+         saved_LIBS="${LIBS}"
+         if test "x$ac_cv_lib_crypt_crypt" = "xyes" ; then
+            LIBS="${saved_LIBS} -lcrypt"
+         fi
+
+         AC_CHECK_LIB(pq, PQisthreadsafe, AC_DEFINE(HAVE_PQISTHREADSAFE, 1, [Set if have PQisthreadsafe]))
+         AC_CHECK_LIB(pq, PQputCopyData, AC_DEFINE(HAVE_PQ_COPY, 1, [Set if have PQputCopyData]))
+         if test "x$ac_cv_lib_pq_PQputCopyData" = "xyes"; then
+             if test $support_batch_insert = yes ; then
+                 AC_DEFINE(HAVE_POSTGRESQL_BATCH_FILE_INSERT, 1, [Set if PostgreSQL DB batch insert code enabled])
+                 if test -z "${batch_insert_db_backends}"; then
+                     batch_insert_db_backends="PostgreSQL"
+                 else
+                     batch_insert_db_backends="${batch_insert_db_backends} PostgreSQL"
+                 fi
+             fi
+         fi
+
+         if test x$ac_cv_lib_pq_PQisthreadsafe != xyes -a x$support_batch_insert = xyes
+         then
+             echo "WARNING: Your PostgreSQL client library is too old to detect "
+             echo "if it was compiled with --enable-thread-safety, consider to "
+             echo "upgrade it in order to avoid problems with Batch insert mode"
+         fi
+
+         dnl Revert after postgresql checks
+         LDFLAGS="${saved_LDFLAGS}"
+         LIBS="${saved_LIBS}"
+     fi
   else
-        AC_MSG_RESULT(no)
+     AC_MSG_RESULT(no)
   fi
 ],[
   AC_MSG_RESULT(no)
 ])
-AC_SUBST(EASYSOFT_LFLAGS)
-AC_SUBST(EASYSOFT_INCLUDE)
+AC_SUBST(POSTGRESQL_LIBS)
+AC_SUBST(POSTGRESQL_INCLUDE)
+AC_SUBST(POSTGRESQL_BINDIR)
 
-
-
-AC_MSG_CHECKING(for InterBase support)
-AC_ARG_WITH(ibase,
-[  --with-ibase@<:@=DIR@:>      Include InterBase support.  DIR is the InterBase
-                          install directory, defaults to /usr/interbase.],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-        
-        if test "$withval" = "yes"; then
-                withval=/usr/interbase
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/include/ibase.h; then
-                        IBASE_INCDIR=$withval/include
-                        if test -d $withval/lib64; then
-                                IBASE_LIBDIR=$withval/lib64
-                        else
-                                IBASE_LIBDIR=$withval/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid InterBase directory - unable to find ibase.h)
-                fi
-                IBASE_LFLAGS="-L$IBASE_LIBDIR -lgds"
-                IBASE_INCLUDE=-I$IBASE_INCDIR
-                AC_DEFINE(HAVE_IBASE)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(IBASE_LFLAGS)
-AC_SUBST(IBASE_INCLUDE)
-
-AC_MSG_CHECKING(for Oracle8 support)
-AC_ARG_WITH(oracle8,
-[  --with-oracle8@<:@=DIR@:>    Include Oracle8 support.  DIR is the Oracle
-                          home directory, defaults to $ORACLE_HOME or
-                          /oracle8/app/oracle/product/8.0.5.],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-
-        if test "$withval" = "yes"; then
-                withval="$ORACLE_HOME"
-                if test "$withval" = ""; then
-                        withval=/oracle8/app/oracle/product/8.0.5
-                fi
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/rdbms/demo/oci.h; then
-                        ORACLE8_INCDIR1=$withval/rdbms/demo/
-                        ORACLE8_INCDIR2=$withval/rdbms/public/:
-                        ORACLE8_INCDIR3=$withval/network/public/
-                        ORACLE8_INCDIR4=$withval/plsql/public/
-                        if test -d $withval/lib64; then
-                                ORACLE8_LIBDIR1=$withval/lib64
-                        else
-                                ORACLE8_LIBDIR1=$withval/lib
-                        fi
-                        if test -d $withval/rdbms/lib64; then
-                               ORACLE8_LIBDIR2=$withval/rdbms/lib64
-                        else
-                                ORACLE8_LIBDIR2=$withval/rdbms/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid ORACLE directory - unable to find oci.h)
-                fi
-                if test -f $withval/lib64/libclntsh.so; then
-                        ORACLE8_LFLAGS="-L$ORACLE8_LIBDIR1 -L$ORACLE8_LIBDIR2 $withval/lib64/libclntsh.so -lmm -lepc -lclient -lvsn -lcommon -lgeneric -lcore4 -lnlsrtl3 -lnsl -lm -ldl -lnetv2 -lnttcp -lnetwork -lncr -lsql"
-                else
-                        ORACLE8_LFLAGS="-L$ORACLE8_LIBDIR1 -L$ORACLE8_LIBDIR2 $withval/lib/libclntsh.so -lmm -lepc -lclient -lvsn -lcommon -lgeneric -lcore4 -lnlsrtl3 -lnsl -lm -ldl -lnetv2 -lnttcp -lnetwork -lncr -lsql"
-                fi
-                ORACLE8_INCLUDE="-I$ORACLE8_INCDIR1 -I$ORACLE8_INCDIR2 -I$ORACLE8_INCDIR3 -I$ORACLE8_INCDIR4"
-                AC_DEFINE(HAVE_ORACLE8)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(ORACLE8_LFLAGS)
-AC_SUBST(ORACLE8_INCLUDE)
-
-
-AC_MSG_CHECKING(for Oracle7 support)
-AC_ARG_WITH(oracle7,
-[  --with-oracle7@<:@=DIR@:>    Include Oracle 7.3 support.  DIR is the Oracle
-                          home directory, defaults to 
-                          ORACLE_HOME [$ORACLE_HOME]],
-[
-        if test "$withval" != "no"; then
-            if test "$have_db" = "yes"; then
-                AC_MSG_RESULT(error)
-                AC_MSG_ERROR("You can configure for only one database.");
-            fi
-        fi
-
-        if test "$withval" = "yes"; then
-                withval="$ORACLE_HOME"
-        fi
-
-        if test "$withval" != "no"; then
-                if test -f $withval/rdbms/demo/ocidfn.h; then
-                        ORACLE7_INCDIR=$withval/rdbms/demo/
-                        if test -d $withval/lib64; then
-                                ORACLE7_LIBDIR1=$withval/lib64
-                        else
-                                ORACLE7_LIBDIR1=$withval/lib
-                        fi
-                        if test -d $withval/rdbms/lib64; then
-                                ORACLE7_LIBDIR2=$withval/rdbms/lib64
-                        else
-                                ORACLE7_LIBDIR2=$withval/rdbms/lib
-                        fi
-                else
-                        AC_MSG_RESULT(no)
-                        AC_MSG_ERROR(Invalid ORACLE directory - unable to find ocidfn.h)
-                fi
-
-        ORACLEINST_TOP=$withval
-        if test -f "$ORACLEINST_TOP/rdbms/lib/sysliblist"
-        then
-          ORA_SYSLIB="`cat $ORACLEINST_TOP/rdbms/lib/sysliblist`"
-        elif test -f "$ORACLEINST_TOP/rdbms/lib64/sysliblist"
-        then
-          ORA_SYSLIB="`cat $ORACLEINST_TOP/rdbms/lib64/sysliblist`"
-        elif test -f "$ORACLEINST_TOP/lib/sysliblist"
-            then
-          ORA_SYSLIB="`cat $ORACLEINST_TOP/lib/sysliblist`"
-        elif test -f "$ORACLEINST_TOP/lib64/sysliblist"
-            then
-          ORA_SYSLIB="`cat $ORACLEINST_TOP/lib64/sysliblist`"
-        else
-          ORA_SYSLIB="-lm"
-        fi
-          
-                ORACLE7_LFLAGS="-L$ORACLE7_LIBDIR1 -L$ORACLE7_LIBDIR2 \
-            -lclient -lsqlnet -lncr -lsqlnet -lclient -lcommon \
-            -lgeneric -lsqlnet -lncr -lsqlnet -lclient -lcommon -lgeneric \
-            -lepc -lnlsrtl3 -lc3v6 -lcore3 -lnlsrtl3 -lcore3 -lnlsrtl3 \
-            $ORA_SYSLIB -lcore3 $ORA_SYSLIB"
-                ORACLE7_INCLUDE="-I$ORACLE7_INCDIR "
-                AC_DEFINE(HAVE_ORACLE7)
-                AC_MSG_RESULT(yes)
-                have_db=yes
-        fi
-],[
-        AC_MSG_RESULT(no)
-])
-AC_SUBST(ORACLE7_LFLAGS)
-AC_SUBST(ORACLE7_INCLUDE)
 ])
-  
 
-AC_DEFUN(AM_CONDITIONAL,
+AC_DEFUN([AM_CONDITIONAL],
 [AC_SUBST($1_TRUE)
 AC_SUBST($1_FALSE)
 if $2; then