diff options
Diffstat (limited to 'm4/mysql.m4')
-rw-r--r-- | m4/mysql.m4 | 270 |
1 files changed, 270 insertions, 0 deletions
diff --git a/m4/mysql.m4 b/m4/mysql.m4 new file mode 100644 index 0000000..b1a9d6a --- /dev/null +++ b/m4/mysql.m4 @@ -0,0 +1,270 @@ +dnl file : m4/mysql.m4 +dnl author : Boris Kolpackov <boris@codesynthesis.com> +dnl copyright : Copyright (c) 2009-2010 Code Synthesis Tools CC +dnl license : GNU GPL v2; see accompanying LICENSE file +dnl +dnl MYSQL +dnl +AC_DEFUN([MYSQL], [ + +# Client. +# +AC_MSG_CHECKING([for mysql client program]) +AC_ARG_WITH( + [mysql-client], + [AC_HELP_STRING([--with-mysql-client=path], [MySQL client program path (mysql by default)])], + [case $withval in + yes) + mysql_client=mysql + ;; + no) + AC_MSG_RESULT([]) + AC_MSG_ERROR([need mysql client to run the tests]) + ;; + *) + mysql_client=$withval + ;; + esac], + [mysql_client=mysql]) + +$mysql_client --version 2>/dev/null 1>&2 + +if test x"$?" = x0; then + AC_MSG_RESULT([$mysql_client]) +else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([mysql client is not found; consider using --with-mysql-client=PATH]) +fi + +# User. +# +AC_MSG_CHECKING([for mysql database user]) +AC_ARG_WITH( + [mysql-user], + [AC_HELP_STRING([--with-mysql-user=login], [MySQL database user (odb_test by default)])], + [case $withval in + yes) + mysql_user=odb_test + mysql_user_set=yes + ;; + no) + mysql_user_set=no + ;; + *) + mysql_user=$withval + mysql_user_set=yes + ;; + esac], + [mysql_user=odb_test + mysql_user_set=yes]) + +if test x$mysql_user_set = xyes; then + AC_MSG_RESULT(['$mysql_user']) +else + AC_MSG_RESULT([none]) +fi + +# Password. +# +AC_MSG_CHECKING([for mysql database password]) +AC_ARG_WITH( + [mysql-password], + [AC_HELP_STRING([--with-mysql-password=login], [MySQL database password (no password by default)])], + [case $withval in + yes) + mysql_password= + mysql_password_set=yes + ;; + no) + mysql_password_set=no + ;; + *) + mysql_password=$withval + mysql_password_set=yes + ;; + esac], + [mysql_password_set=no]) + +if test x$mysql_password_set = xyes; then + AC_MSG_RESULT(['$mysql_password']) +else + AC_MSG_RESULT([none]) +fi + +# Database name. +# +AC_MSG_CHECKING([for mysql database name]) +AC_ARG_WITH( + [mysql-db], + [AC_HELP_STRING([--with-mysql-db=name], [MySQL database name (odb_test by default). Note that all data in this database WILL BE LOST!])], + [case $withval in + yes) + mysql_db=odb_test + mysql_db_set=yes + ;; + no) + mysql_db_set=no + ;; + *) + mysql_db=$withval + mysql_db_set=yes + ;; + esac], + [mysql_db=odb_test + mysql_db_set=yes]) + +if test x$mysql_db_set = xyes; then + AC_MSG_RESULT(['$mysql_db']) +else + AC_MSG_RESULT([none]) +fi + +# Host. +# +AC_MSG_CHECKING([for mysql database host]) +AC_ARG_WITH( + [mysql-host], + [AC_HELP_STRING([--with-mysql-host=host], [MySQL database host (localhost by default)])], + [case $withval in + yes) + mysql_host=localhost + mysql_host_set=yes + ;; + no) + mysql_host_set=no + ;; + *) + mysql_host=$withval + mysql_host_set=yes + ;; + esac], + [mysql_host_set=no]) + +if test x$mysql_host_set = xyes; then + AC_MSG_RESULT(['$mysql_host']) +else + AC_MSG_RESULT([localhost]) +fi + +# Port. +# +AC_MSG_CHECKING([for mysql database port]) +AC_ARG_WITH( + [mysql-port], + [AC_HELP_STRING([--with-mysql-port=port], [MySQL database port (standard MySQL port by default)])], + [case $withval in + yes) + mysql_port=0 + mysql_port_set=yes + ;; + no) + mysql_port_set=no + ;; + *) + mysql_port=$withval + mysql_port_set=yes + ;; + esac], + [mysql_port_set=no]) + +if test x$mysql_port_set = xyes; then + AC_MSG_RESULT(['$mysql_port']) +else + AC_MSG_RESULT([default]) +fi + +# Socket. +# +AC_MSG_CHECKING([for mysql database socket]) +AC_ARG_WITH( + [mysql-socket], + [AC_HELP_STRING([--with-mysql-socket=socket], [MySQL database socket (standard MySQL socket by default)])], + [case $withval in + yes) + mysql_socket= + mysql_socket_set=yes + ;; + no) + mysql_socket_set=no + ;; + *) + mysql_socket=$withval + mysql_socket_set=yes + ;; + esac], + [mysql_socket_set=no]) + +if test x$mysql_socket_set = xyes; then + AC_MSG_RESULT(['$mysql_socket']) +else + AC_MSG_RESULT([default]) +fi + +# Create options file. +# +AC_CONFIG_COMMANDS([db.options], + [ + rm -f db.options + echo '#! /bin/sh' >db-driver + + if test x$mysql_user_set = xyes; then + echo "--user '$mysql_user'" >>db.options + echo 'opt="$opt --user='"$mysql_user"'"' >>db-driver + fi + + if test x$mysql_password_set = xyes; then + echo "--password '$mysql_password'" >>db.options + echo 'opt="$opt --password='"$mysql_password"'"' >>db-driver + fi + + if test x$mysql_db_set = xyes; then + echo "--database '$mysql_db'" >>db.options + echo 'opt="$opt --database='"$mysql_db"'"' >>db-driver + fi + + if test x$mysql_host_set = xyes; then + echo "--host '$mysql_host'" >>db.options + echo 'opt="$opt --host='"$mysql_host"'"' >>db-driver + fi + + if test x$mysql_port_set = xyes; then + echo "--port '$mysql_port'" >>db.options + echo 'opt="$opt --port='"$mysql_port"'"' >>db-driver + fi + + if test x$mysql_socket_set = xyes; then + echo "--socket '$mysql_socket'" >>db.options + echo 'opt="$opt --socket='"$mysql_socket"'"' >>db-driver + fi + + echo 'if test x$[]1 != x; then' >>db-driver + echo " exec $mysql_client "'$opt <$[]1' >>db-driver + echo "else" >>db-driver + echo " exec $mysql_client "'$opt' >>db-driver + echo "fi" >>db-driver + + chmod +x db-driver + ], + [ + mysql_client="$mysql_client" + + mysql_user="$mysql_user" + mysql_user_set="$mysql_user_set" + + mysql_password="$mysql_password" + mysql_password_set="$mysql_password_set" + + mysql_db="$mysql_db" + mysql_db_set="$mysql_db_set" + + mysql_host="$mysql_host" + mysql_host_set="$mysql_host_set" + + mysql_port="$mysql_port" + mysql_port_set="$mysql_port_set" + + mysql_socket="$mysql_socket" + mysql_socket_set="$mysql_socket_set" + ]) + +])dnl |