]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/autoconf/bacula-macros/db.m4
Apply patch (with some difficulties) from Joao Henrique Freitas
[bacula/bacula] / bacula / autoconf / bacula-macros / db.m4
index df90d7cc69a601b8541c0f09c1c5c0d1d086fbc8..dbc95336580429e43a335c0f58636106c0ee4ad5 100644 (file)
@@ -1,4 +1,125 @@
-AC_DEFUN(BA_CHECK_MYSQL_DB,
+AC_DEFUN([BA_CHECK_DBI_DB],
+[
+db_found=no
+AC_MSG_CHECKING(for DBI support)
+AC_ARG_WITH(dbi,
+[
+  --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
+        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
+        else
+           AC_MSG_RESULT(no)
+           AC_MSG_ERROR(Invalid DBD driver directory $withval - unable to find DBD drivers under $withval)
+        fi
+     fi
+     SQL_INCLUDE=-I$DBI_INCDIR
+     SQL_LFLAGS="-L$DBI_LIBDIR -ldbi"
+     SQL_BINDIR=$DBI_BINDIR
+     SQL_LIB=$DBI_LIBDIR/libdbi.a
+     DBI_DBD_DRIVERDIR="-D DBI_DRIVER_DIR=\\\"$DRIVERDIR\\\""
+
+     AC_DEFINE(HAVE_DBI)
+     AC_MSG_RESULT(yes)
+     db_found=yes
+     support_dbi=yes
+     db_type=DBI
+     DB_TYPE=dbi
+
+  else
+     AC_MSG_RESULT(no)
+  fi
+],[
+  AC_MSG_RESULT(no)
+])
+AC_SUBST(SQL_LFLAGS)
+AC_SUBST(SQL_INCLUDE)
+AC_SUBST(SQL_BINDIR)
+AC_SUBST(DBI_DBD_DRIVERDIR)  
+
+])
+
+
+AC_DEFUN([BA_CHECK_MYSQL_DB],
 [
 db_found=no
 AC_MSG_CHECKING(for MySQL support)
@@ -12,7 +133,8 @@ AC_ARG_WITH(mysql,
         if test "$withval" = "yes"; 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.a; then
+                   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
@@ -20,15 +142,20 @@ AC_ARG_WITH(mysql,
                    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.a; then
+                   if test -f /usr/lib64/mysql/libmysqlclient_r.a \
+                        -o -f /usr/lib64/mysql/libmysqlclient_r.so; then  
                            MYSQL_LIBDIR=/usr/lib64/mysql
-                   else
+                   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.a; then
+                   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
@@ -36,7 +163,8 @@ AC_ARG_WITH(mysql,
                    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.a; then
+                   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
@@ -44,7 +172,8 @@ AC_ARG_WITH(mysql,
                    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.a; then
+                   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
@@ -57,19 +186,21 @@ AC_ARG_WITH(mysql,
         else
            if test -f $withval/include/mysql/mysql.h; then
               MYSQL_INCDIR=$withval/include/mysql
-              if test -f $withval/lib64/mysql/libmysqlclient.a; then
+              if test -f $withval/lib64/mysql/libmysqlclient_r.a \
+                   -o -f $withval/lib64/mysql/libmysqlclient_r.so; then
                  MYSQL_LIBDIR=$withval/lib64/mysql
               else
                  MYSQL_LIBDIR=$withval/lib/mysql
                  # Solaris ...
-                 if test -f $withval/lib/libmysqlclient.so; then
+                 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
               MYSQL_INCDIR=$withval/include
-              if test -f "$withval/lib64/libmysqlclient.a"; then
+              if test -f $withval/lib64/libmysqlclient_r.a \
+                   -o -f $withval/lib64/libmysqlclient_r.so; then
                  MYSQL_LIBDIR=$withval/lib64
               else
                  MYSQL_LIBDIR=$withval/lib
@@ -81,13 +212,13 @@ AC_ARG_WITH(mysql,
            fi
         fi
     SQL_INCLUDE=-I$MYSQL_INCDIR
-    if test -f "$MYSQL_LIBDIR/libmysqlclient_r.a"; then
+    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)
-    else
-       SQL_LFLAGS="-L$MYSQL_LIBDIR -lmysqlclient -lz"
     fi
     SQL_BINDIR=$MYSQL_BINDIR
+    SQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
 
     AC_DEFINE(HAVE_MYSQL)
     AC_MSG_RESULT(yes)
@@ -179,6 +310,7 @@ AC_ARG_WITH(embedded-mysql,
     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)
@@ -202,7 +334,7 @@ AC_SUBST(SQL_BINDIR)
 ])
 
 
-AC_DEFUN(BA_CHECK_SQLITE_DB,
+AC_DEFUN([BA_CHECK_SQLITE_DB],
 [
 db_found=no
 AC_MSG_CHECKING(for SQLite support)
@@ -263,6 +395,7 @@ AC_ARG_WITH(sqlite,
      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)
      AC_MSG_RESULT(yes)
@@ -283,7 +416,7 @@ AC_SUBST(SQL_BINDIR)
   
 ])
 
-AC_DEFUN(BA_CHECK_SQLITE3_DB,
+AC_DEFUN([BA_CHECK_SQLITE3_DB],
 [
 db_found=no
 AC_MSG_CHECKING(for SQLite3 support)
@@ -344,6 +477,7 @@ AC_ARG_WITH(sqlite3,
      SQL_INCLUDE=-I$SQLITE_INCDIR
      SQL_LFLAGS="-L$SQLITE_LIBDIR -lsqlite3"
      SQL_BINDIR=$SQLITE_BINDIR
+     SQL_LIB=$SQLITE_LIBDIR/libsqlite3.a
 
      AC_DEFINE(HAVE_SQLITE3)
      AC_MSG_RESULT(yes)
@@ -366,7 +500,7 @@ AC_SUBST(SQL_BINDIR)
 
 
 
-AC_DEFUN(BA_CHECK_POSTGRESQL_DB,
+AC_DEFUN([BA_CHECK_POSTGRESQL_DB],
 [
 db_found=no
 AC_MSG_CHECKING(for PostgreSQL support)
@@ -442,6 +576,8 @@ AC_ARG_WITH(postgresql,
       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
@@ -462,7 +598,7 @@ AC_SUBST(SQL_BINDIR)
 
 
 
-AC_DEFUN(BA_CHECK_SQL_DB
+AC_DEFUN([BA_CHECK_SQL_DB]
 [AC_MSG_CHECKING(Checking for various databases)
 dnl# --------------------------------------------------------------------------
 dnl# CHECKING FOR VARIOUS DATABASES (thanks to UdmSearch team)
@@ -995,7 +1131,7 @@ AC_SUBST(ORACLE7_INCLUDE)
 ])
   
 
-AC_DEFUN(AM_CONDITIONAL,
+AC_DEFUN([AM_CONDITIONAL],
 [AC_SUBST($1_TRUE)
 AC_SUBST($1_FALSE)
 if $2; then