diff --git a/build/dbd.m4 b/build/dbd.m4 index c6e40e0..fc43c8c 100644 --- a/build/dbd.m4 +++ b/build/dbd.m4 @@ -163,10 +163,15 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [ old_cppflags="$CPPFLAGS" old_ldflags="$LDFLAGS" + my_library="mysqlclient" + AC_ARG_WITH([mysql], APR_HELP_STRING([--with-mysql=DIR], [enable MySQL DBD driver]), [ if test "$withval" = "yes"; then AC_PATH_PROG([MYSQL_CONFIG],[mysql_config]) + if test "x$MYSQL_CONFIG" = "x"; then + AC_PATH_PROG([MYSQL_CONFIG],[mariadb_config]) + fi if test "x$MYSQL_CONFIG" != 'x'; then mysql_CPPFLAGS="`$MYSQL_CONFIG --include`" mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r | sed -e 's/-l[[^ ]]\+//g'`" @@ -174,32 +179,40 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [ APR_ADDTO(CPPFLAGS, [$mysql_CPPFLAGS]) APR_ADDTO(LIBS, [$mysql_LIBS]) + + if $MYSQL_CONFIG --libs_r | grep -q mariadb; then + my_library="mariadb" + fi fi - AC_CHECK_HEADERS([mysql.h my_global.h my_sys.h], - AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]), - [apu_have_mysql=0; break], - [#include ]) - if test "$apu_have_mysql" = "0"; then - AC_CHECK_HEADERS([mysql/mysql.h mysql/my_global.h mysql/my_sys.h], - AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]), - [apu_have_mysql=0; break], - [#include ]) + AC_CHECK_HEADERS([mysql.h errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break]) + if test "$apr_have_mysql" = "0"; then + AC_CHECK_HEADERS([mysql/mysql.h mysql/errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break]) fi - if test "$apu_have_mysql" != "0" && test "x$MYSQL_CONFIG" != 'x'; then - APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS]) + if test "$apr_have_mysql" = "1"; then + AC_CHECK_HEADERS([my_global.h my_sys.h mysql/my_global.h mysql/my_sys.h]) + AC_CHECK_LIB($my_library, mysql_init,, [apu_have_mysql=0]) + fi + if test "$apu_have_mysql" = "1" && test "x$MYSQL_CONFIG" != 'x'; then + APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS]) fi elif test "$withval" = "no"; then : else AC_PATH_PROG([MYSQL_CONFIG],[mysql_config],,[$withval/bin]) + if test "x$MYSQL_CONFIG" = "x"; then + AC_PATH_PROG([MYSQL_CONFIG],[mariadb_config],,[$withval/bin]) + fi if test "x$MYSQL_CONFIG" != 'x'; then - mysql_CPPFLAGS="`$MYSQL_CONFIG --include`" - mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r | sed -e 's/-l[[^ ]]\+//g'`" - mysql_LIBS="`$MYSQL_CONFIG --libs_r`" + mysql_CPPFLAGS="`$MYSQL_CONFIG --include`" + mysql_LDFLAGS="`$MYSQL_CONFIG --libs_r | sed -e 's/-l[[^ ]]\+//g'`" + mysql_LIBS="`$MYSQL_CONFIG --libs_r`" + if $MYSQL_CONFIG --libs_r | grep -q mariadb; then + my_library="mariadb" + fi else - mysql_CPPFLAGS="-I$withval/include" - mysql_LDFLAGS="-L$withval/lib " + mysql_CPPFLAGS="-I$withval/include" + mysql_LDFLAGS="-L$withval/lib " fi APR_ADDTO(CPPFLAGS, [$mysql_CPPFLAGS]) @@ -207,18 +220,15 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [ APR_ADDTO(LIBS, [$mysql_LIBS]) AC_MSG_NOTICE(checking for mysql in $withval) - AC_CHECK_HEADERS([mysql.h my_global.h my_sys.h], - AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]), - [apu_have_mysql=0; break], - [#include ]) - - if test "$apu_have_mysql" != "1"; then - AC_CHECK_HEADERS([mysql/mysql.h mysql/my_global.h mysql/my_sys.h], - AC_CHECK_LIB(mysqlclient, mysql_init, [apu_have_mysql=1]), - [apu_have_mysql=0; break], - [#include ]) + AC_CHECK_HEADERS([mysql.h errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break]) + if test "$apr_have_mysql" = "0"; then + AC_CHECK_HEADERS([mysql/mysql.h mysql/errmsg.h], [apu_have_mysql=1], [apu_have_mysql=0; break]) + fi + if test "$apr_have_mysql" = "1"; then + AC_CHECK_HEADERS([my_global.h my_sys.h mysql/my_global.h mysql/my_sys.h]) + AC_CHECK_LIB($my_library, mysql_init,, [apu_have_mysql=0]) fi - if test "$apu_have_mysql" != "0"; then + if test "$apu_have_mysql" = "1"; then APR_ADDTO(APRUTIL_PRIV_INCLUDES, [$mysql_CPPFLAGS]) fi fi @@ -229,7 +239,7 @@ AC_DEFUN([APU_CHECK_DBD_MYSQL], [ dnl Since we have already done the AC_CHECK_LIB tests, if we have it, dnl we know the library is there. if test "$apu_have_mysql" = "1"; then - APR_ADDTO(LDADD_dbd_mysql, [$mysql_LDFLAGS -lmysqlclient $mysql_LIBS]) + APR_ADDTO(LDADD_dbd_mysql, [$mysql_LDFLAGS -l$my_library $mysql_LIBS]) fi AC_SUBST(LDADD_dbd_mysql) diff --git a/dbd/apr_dbd_mysql.c b/dbd/apr_dbd_mysql.c index 3b8017d..d3e938c 100644 --- a/dbd/apr_dbd_mysql.c +++ b/dbd/apr_dbd_mysql.c @@ -1262,7 +1262,9 @@ static apr_status_t thread_end(void *data) static void dbd_mysql_init(apr_pool_t *pool) { +#if MYSQL_VERSION_ID < 100000 my_init(); +#endif mysql_thread_init(); /* FIXME: this is a guess; find out what it really does */