From: Marco van Wieringen <marco.van.wieringen@bareos.com>
Date: Tue, 26 Apr 2016 19:13:21 +0200
Subject: build: Allow libmysqlclient instead of libmysqlclient_r

Some systems seem to only distribute libmysqlclient and not
libmysqlclient_r so this patch adds support to configure to also support
that variation.
---
 autoconf/bareos/db.m4 | 41 +++++++++++++++++++++-----
 configure             | 82 ++++++++++++++++++++++++++++++++++++++++++++++-----
 2 files changed, 109 insertions(+), 14 deletions(-)

diff --git a/autoconf/bareos/db.m4 b/autoconf/bareos/db.m4
index c169f0e..ce5916d 100644
--- a/autoconf/bareos/db.m4
+++ b/autoconf/bareos/db.m4
@@ -380,6 +380,8 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
          #
          if test x${MYSQL_LIBDIR} = x -o \
             ! \( -f ${MYSQL_LIBDIR}/libmysqlclient_r.so -o \
+                 -f ${MYSQL_LIBDIR}/libmysqlclient.so -o \
+                 -f ${MYSQL_LIBDIR}/libmysqlclient.a -o \
                  -f ${MYSQL_LIBDIR}/libmysqlclient_r.a \); then
             if test -f /usr/local/mysql/include/mysql/mysql.h; then
                MYSQL_INCDIR=/usr/local/mysql/include/mysql
@@ -473,6 +475,7 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
 
       if test x${MYSQL_LIBDIR} != x; then
          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
@@ -481,8 +484,19 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
                MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
             fi
             DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+            MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
+         else
+            if test -f $MYSQL_LIBDIR/libmysqlclient.a \
+                 -o -f $MYSQL_LIBDIR/libmysqlclient.so; then
+               if test x$use_libtool != xno; then
+                  MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient -lz"
+               else
+                  MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient -lz"
+               fi
+               DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+            fi
+            MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient.a
          fi
-         MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
 
          AC_DEFINE(HAVE_MYSQL, 1, [Set if you have an MySQL Database])
          AC_MSG_RESULT(yes)
@@ -508,12 +522,25 @@ AC_HELP_STRING([--with-mysql@<:@=DIR@:>@], [Include MySQL support. DIR is the My
              saved_LIBS="${LIBS}"
              LIBS="${saved_LIBS} -lz"
 
-             AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Define to 1 if you have the `mysql_thread_safe' function.]))
-             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"
+             if test -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
+                 AC_CHECK_LIB(mysqlclient_r, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Define to 1 if you have the `mysql_thread_safe' function.]))
+
+                 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
+             else
+                 AC_CHECK_LIB(mysqlclient, mysql_thread_safe, AC_DEFINE(HAVE_MYSQL_THREAD_SAFE, 1, [Define to 1 if you have the `mysql_thread_safe' function.]))
+
+                 if test "x$ac_cv_lib_mysqlclient_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
              fi
 
diff --git a/configure b/configure
index 9278ecd..166db85 100755
--- a/configure
+++ b/configure
@@ -25019,6 +25019,8 @@ if test "${with_mysql+set}" = set; then :
          #
          if test x${MYSQL_LIBDIR} = x -o \
             ! \( -f ${MYSQL_LIBDIR}/libmysqlclient_r.so -o \
+                 -f ${MYSQL_LIBDIR}/libmysqlclient.so -o \
+                 -f ${MYSQL_LIBDIR}/libmysqlclient.a -o \
                  -f ${MYSQL_LIBDIR}/libmysqlclient_r.a \); then
             if test -f /usr/local/mysql/include/mysql/mysql.h; then
                MYSQL_INCDIR=/usr/local/mysql/include/mysql
@@ -25114,6 +25116,7 @@ $as_echo "no" >&6; }
 
       if test x${MYSQL_LIBDIR} != x; then
          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
@@ -25122,8 +25125,19 @@ $as_echo "no" >&6; }
                MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient_r -lz"
             fi
             DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+            MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
+         else
+            if test -f $MYSQL_LIBDIR/libmysqlclient.a \
+                 -o -f $MYSQL_LIBDIR/libmysqlclient.so; then
+               if test x$use_libtool != xno; then
+                  MYSQL_LIBS="-R $MYSQL_LIBDIR -L$MYSQL_LIBDIR -lmysqlclient -lz"
+               else
+                  MYSQL_LIBS="-L$MYSQL_LIBDIR -lmysqlclient -lz"
+               fi
+               DB_LIBS="${DB_LIBS} ${MYSQL_LIBS}"
+            fi
+            MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient.a
          fi
-         MYSQL_LIB=$MYSQL_LIBDIR/libmysqlclient_r.a
 
 
 $as_echo "#define HAVE_MYSQL 1" >>confdefs.h
@@ -25148,7 +25162,8 @@ $as_echo "yes" >&6; }
              saved_LIBS="${LIBS}"
              LIBS="${saved_LIBS} -lz"
 
-             { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mysql_thread_safe in -lmysqlclient_r" >&5
+             if test -f $MYSQL_LIBDIR/libmysqlclient_r.so; then
+                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mysql_thread_safe in -lmysqlclient_r" >&5
 $as_echo_n "checking for mysql_thread_safe in -lmysqlclient_r... " >&6; }
 if ${ac_cv_lib_mysqlclient_r_mysql_thread_safe+:} false; then :
   $as_echo_n "(cached) " >&6
@@ -25190,11 +25205,64 @@ $as_echo "#define HAVE_MYSQL_THREAD_SAFE 1" >>confdefs.h
 
 fi
 
-             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"
+
+                 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
+             else
+                 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mysql_thread_safe in -lmysqlclient" >&5
+$as_echo_n "checking for mysql_thread_safe in -lmysqlclient... " >&6; }
+if ${ac_cv_lib_mysqlclient_mysql_thread_safe+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  ac_check_lib_save_LIBS=$LIBS
+LIBS="-lmysqlclient  $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char mysql_thread_safe ();
+int
+main ()
+{
+return mysql_thread_safe ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  ac_cv_lib_mysqlclient_mysql_thread_safe=yes
+else
+  ac_cv_lib_mysqlclient_mysql_thread_safe=no
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mysqlclient_mysql_thread_safe" >&5
+$as_echo "$ac_cv_lib_mysqlclient_mysql_thread_safe" >&6; }
+if test "x$ac_cv_lib_mysqlclient_mysql_thread_safe" = xyes; then :
+
+$as_echo "#define HAVE_MYSQL_THREAD_SAFE 1" >>confdefs.h
+
+fi
+
+
+                 if test "x$ac_cv_lib_mysqlclient_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
              fi
 
