]> 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 8ef51bbbcec8ca5e361d94084c82a5181091a1bc..d9d4e1fcf7ebf2d7d90cd4522035295a6d1c1daa 100644 (file)
@@ -1,3 +1,7 @@
+#
+# Author: Kern Sibbald, 2008
+# License: BSD 2-Clause
+#
 AC_DEFUN([BA_CHECK_DBI_DB],
 [
 AC_MSG_CHECKING(for DBI support)
@@ -21,7 +25,7 @@ AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD ba
            else
               DBI_LIBDIR=/usr/lib
            fi
-           DBI_BINDIR=/usr/bin      
+           DBI_BINDIR=/usr/bin
         elif test -f $prefix/include/dbi/dbi.h; then
            DBI_INCDIR=$prefix/include
            if test -d $prefix/lib64; then
@@ -29,7 +33,7 @@ AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD ba
            else
               DBI_LIBDIR=$prefix/lib
            fi
-           DBI_BINDIR=$prefix/bin      
+           DBI_BINDIR=$prefix/bin
         else
            AC_MSG_RESULT(no)
            AC_MSG_ERROR(Unable to find dbi.h in standard locations)
@@ -150,7 +154,7 @@ AC_HELP_STRING([--with-dbi@<:@=DIR@:>@], [Include DBI support. DIR is the DBD ba
 AC_SUBST(DBI_LIBS)
 AC_SUBST(DBI_INCLUDE)
 AC_SUBST(DBI_BINDIR)
-AC_SUBST(DBI_DBD_DRIVERDIR)  
+AC_SUBST(DBI_DBD_DRIVERDIR)
 
 ])
 
@@ -176,7 +180,7 @@ AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVE
            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  
+                  -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
@@ -187,7 +191,7 @@ AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVE
            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  
+                  -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
@@ -209,6 +213,18 @@ AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVE
               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)
@@ -275,14 +291,14 @@ AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVE
                  SQLITE_LIBDIR=/usr/lib64
               else
                  SQLITE_LIBDIR=/usr/lib
-              fi                 
+              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                 
+              fi
            else
               AC_MSG_RESULT(no)
               AC_MSG_ERROR(Unable to find sqlite in standard locations)
@@ -292,7 +308,7 @@ AC_HELP_STRING([--with-dbi-driver@<:@=DRIVER@:>@], [Suport for DBI driver. DRIVE
            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)
@@ -325,57 +341,76 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
 [
   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/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
-                   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
+                 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
+              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)
@@ -405,6 +440,36 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
                  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)
@@ -418,7 +483,6 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
         else
            MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
         fi
-        AC_DEFINE(HAVE_THREAD_SAFE_MYSQL, 1, [Set if Thread Safe MySQL can be checked using mysql_thread_safe])
         DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
      fi
      MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
@@ -596,7 +660,7 @@ AC_HELP_STRING([--with-embedded-mysql@<:@=DIR@:>@], [Include MySQL support. DIR
 AC_SUBST(MYSQL_LIBS)
 AC_SUBST(MYSQL_INCLUDE)
 AC_SUBST(MYSQL_BINDIR)
-  
+
 ])
 
 AC_DEFUN([BA_CHECK_INGRES_DB],
@@ -614,7 +678,7 @@ AC_HELP_STRING([--with-ingres@<:@=DIR@:>@], [Include Ingres support. DIR is the
         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      
+           INGRES_BINDIR=${II_SYSTEM}/ingres/bin
         else
            AC_MSG_RESULT(no)
            AC_MSG_ERROR(Unable to find eqdefc.h in standard locations)
@@ -684,7 +748,7 @@ AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is th
            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
@@ -692,7 +756,7 @@ AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is th
            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)
@@ -744,7 +808,7 @@ AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is th
      if test "x$support_batch_insert" = "xyes"; then
          dnl For sqlite checking
          saved_LDFLAGS="${LDFLAGS}"
-         LDFLAGS="${saved_LDFLAGS} -L$SQLITE_LIBDIR"
+         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
@@ -767,7 +831,7 @@ AC_HELP_STRING([--with-sqlite3@<:@=DIR@:>@], [Include SQLite3 support. DIR is th
 AC_SUBST(SQLITE_LIBS)
 AC_SUBST(SQLITE_INCLUDE)
 AC_SUBST(SQLITE_BINDIR)
-  
+
 ])