blob: ed71751ce8a79a5eb8083086329f1743424fd644 [file] [log] [blame]
##*****************************************************************************
# AUTHOR:
# Danny Auble <da@llnl.gov>
#
# SYNOPSIS:
# X_AC_DATABASES
#
# DESCRIPTION:
# Test for Different Database apis. If found define appropriate ENVs.
##*****************************************************************************
AC_DEFUN([X_AC_DATABASES],
[
#Check for MySQL
ac_have_mysql="no"
_x_ac_mysql_bin=""
### Check for mysql_config program
AC_ARG_WITH(
[mysql_config],
AS_HELP_STRING(--with-mysql_config=PATH,
Specify path of directory where mysql_config binary exists),
[AS_IF([test "x$with_mysql_config" != xno && test "x$with_mysql_config" != xyes],
[_x_ac_mysql_bin="$with_mysql_config"])])
if test -z "$_x_ac_mysql_bin"; then
AC_PATH_PROGS(HAVEMYSQLCONFIG, [mysql_config mariadb_config], no)
else
AC_PATH_PROGS(HAVEMYSQLCONFIG, [mysql_config mariadb_config], no, $_x_ac_mysql_bin)
fi
if test x$with_mysql_config = xno; then
AC_MSG_NOTICE([support for mysql is disabled])
elif test x$HAVEMYSQLCONFIG = xno; then
if test -z "$with_mysql_config"; then
AC_MSG_WARN([*** mysql_config not found. Evidently no MySQL development libs installed on system.])
else
AC_MSG_ERROR([*** mysql_config not found. Evidently no MySQL development libs installed on system.])
fi
else
# check for mysql-5.0.0+
mysql_config_major_version=`$HAVEMYSQLCONFIG --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[a-zA-Z0-9]]*\)/\1/'`
mysql_config_minor_version=`$HAVEMYSQLCONFIG --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[a-zA-Z0-9]]*\)/\2/'`
mysql_config_micro_version=`$HAVEMYSQLCONFIG --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[a-zA-Z0-9]]*\)/\3/'`
if test $mysql_config_major_version -lt 5; then
if test -z "$with_mysql_config"; then
AC_MSG_WARN([*** mysql-$mysql_config_major_version.$mysql_config_minor_version.$mysql_config_micro_version available, we need >= mysql-5.0.0 installed for the mysql interface.])
else
AC_MSG_ERROR([*** mysql-$mysql_config_major_version.$mysql_config_minor_version.$mysql_config_micro_version available, we need >= mysql-5.0.0 installed for the mysql interface.])
fi
ac_have_mysql="no"
else
# mysql_config puts -I on the front of the dir. We don't
# want that so we remove it.
MYSQL_CFLAGS=`$HAVEMYSQLCONFIG --include`
MYSQL_LIBS=`$HAVEMYSQLCONFIG --libs_r`
save_CFLAGS="$CFLAGS"
save_LIBS="$LIBS"
CFLAGS="$MYSQL_CFLAGS $save_CFLAGS"
LIBS="$MYSQL_LIBS $save_LIBS"
AC_LINK_IFELSE(
[AC_LANG_PROGRAM(
[[
#include <mysql.h>
]],
[[
MYSQL mysql;
(void) mysql_init(&mysql);
(void) mysql_close(&mysql);
]],
)],
[ac_have_mysql="yes"],
[ac_have_mysql="no"])
CFLAGS="$save_CFLAGS"
LIBS="$save_LIBS"
if test "$ac_have_mysql" = yes; then
AC_MSG_RESULT([MySQL $mysql_config_major_version.$mysql_config_minor_version.$mysql_config_micro_version test program built properly.])
AC_SUBST(MYSQL_LIBS)
AC_SUBST(MYSQL_CFLAGS)
AC_DEFINE(HAVE_MYSQL, 1, [Define to 1 if using MySQL libaries])
else
MYSQL_CFLAGS=""
MYSQL_LIBS=""
if test -z "$with_mysql_config"; then
AC_MSG_WARN([*** MySQL test program execution failed. A thread-safe MySQL library is required.])
else
AC_MSG_ERROR([*** MySQL test program execution failed. A thread-safe MySQL library is required.])
fi
fi
fi
fi
AM_CONDITIONAL(WITH_MYSQL, test x"$ac_have_mysql" = x"yes")
])