dnl file : m4/mssql.m4 dnl license : GNU GPL v2; see accompanying LICENSE file dnl dnl MSSQL dnl AC_DEFUN([MSSQL], [ # Client. # AC_MSG_CHECKING([for mssql client program]) AC_ARG_WITH( [mssql-client], [AC_HELP_STRING([--with-mssql-client=PATH], [SQL Server client program path (sqlcmd by default)])], [case $withval in yes) mssql_client=sqlcmd ;; no) AC_MSG_RESULT([]) AC_MSG_ERROR([need mssql client to run the tests]) ;; *) mssql_client=$withval ;; esac], [mssql_client=sqlcmd]) $mssql_client -? 2>/dev/null 1>&2 if test x"$?" = x0; then AC_MSG_RESULT([$mssql_client]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([mssql client is not found; consider using --with-mssql-client=PATH]) fi # User. If 'no' is specified, then use Windows authentication. # AC_MSG_CHECKING([for mssql database user]) AC_ARG_WITH( [mssql-user], [AC_HELP_STRING([--with-mssql-user=NAME], [SQL Server database user (odb_test by default)])], [case $withval in yes) mssql_user=odb_test mssql_user_set=yes ;; no) mssql_user_set=no ;; *) mssql_user=$withval mssql_user_set=yes ;; esac], [mssql_user=odb_test mssql_user_set=yes]) if test x$mssql_user_set = xyes; then AC_MSG_RESULT(['$mssql_user']) else AC_MSG_RESULT([none]) fi # Password. Can be left unspecified if using Windows authentication. # AC_MSG_CHECKING([for mssql database password]) AC_ARG_WITH( [mssql-password], [AC_HELP_STRING([--with-mssql-password=PASS], [SQL Server database password (odb_test by default)])], [case $withval in yes) mssql_password=odb_test mssql_password_set=yes ;; no) mssql_password_set=no ;; *) mssql_password=$withval mssql_password_set=yes ;; esac], [mssql_password_set=no]) if test x$mssql_password_set = xyes; then AC_MSG_RESULT(['$mssql_password']) elif test x$mssql_user = xodb_test; then mssql_password=odb_test mssql_password_set=yes AC_MSG_RESULT(['$mssql_password']) else AC_MSG_RESULT([none]) if test x$mssql_user_set = xyes; then AC_MSG_ERROR([password not specified; SQL Server requires a password (--with-mssql-password=PASS)]) fi fi # Database. If not specified, use the user's default. # AC_MSG_CHECKING([for mssql database name]) AC_ARG_WITH( [mssql-db], [AC_HELP_STRING([--with-mssql-db=NAME], [SQL Server database name (odb_test by default). Note that all data in this database WILL BE LOST!])], [case $withval in yes) mssql_db=odb_test mssql_db_set=yes ;; no) mssql_db_set=no ;; *) mssql_db=$withval mssql_db_set=yes ;; esac], [mssql_db=odb_test mssql_db_set=yes]) if test x$mssql_db_set = xyes; then AC_MSG_RESULT(['$mssql_db']) else AC_MSG_RESULT([default]) fi # Server. # AC_MSG_CHECKING([for mssql instance address]) AC_ARG_WITH( [mssql-server], [AC_HELP_STRING([--with-mssql-server=ADDR], [SQL Server instance address])], [case $withval in yes | no) mssql_server_set=no ;; *) mssql_server=$withval mssql_server_set=yes ;; esac], [mssql_server_set=no]) if test x$mssql_server_set = xyes; then AC_MSG_RESULT(['$mssql_server']) else AC_MSG_RESULT([none]) AC_MSG_ERROR([instance address not specified; SQL Server instance address is required (--with-mssql-server=ADDR)]) fi # Driver. # AC_MSG_CHECKING([for mssql native client odbc driver]) AC_ARG_WITH( [mssql-driver], [AC_HELP_STRING([--with-mssql-driver=NAME], [SQL Server Native Client ODBC driver (latest available by default)])], [case $withval in yes | no) mssql_driver_set=no ;; *) mssql_driver=$withval mssql_driver_set=yes ;; esac], [mssql_driver_set=no]) if test x$mssql_driver_set = xyes; then AC_MSG_RESULT(['$mssql_driver']) else AC_MSG_RESULT([latest]) fi # Create options file. # AC_CONFIG_COMMANDS([mssql.options], [ rm -f mssql.options echo '#! /bin/sh' >mssql-driver echo 'opt=' >>mssql-driver if test x$mssql_user_set = xyes; then echo "--user '$mssql_user'" >>mssql.options echo 'opt="$opt -U '"$mssql_user"'"' >>mssql-driver echo "--password '$mssql_password'" >>mssql.options echo 'opt="$opt -P '"$mssql_password"'"' >>mssql-driver fi if test x$mssql_db_set = xyes; then echo "--database '$mssql_db'" >>mssql.options echo 'opt="$opt -d '"$mssql_db"'"' >>mssql-driver fi echo "--server '$mssql_server'" >>mssql.options echo 'opt="$opt -S '"$mssql_server"'"' >>mssql-driver if test x$mssql_driver_set = xyes; then echo "--driver '$mssql_driver'" >>mssql.options fi echo 'opt="$opt -x -r -b"' >>mssql-driver echo 'if test x$[]1 != x; then' >>mssql-driver echo " exec $mssql_client "'$opt -i $[]1' >>mssql-driver echo "else" >>mssql-driver echo " exec $mssql_client "'$opt' >>mssql-driver echo "fi" >>mssql-driver chmod +x mssql-driver ], [ mssql_client="$mssql_client" mssql_user="$mssql_user" mssql_user_set="$mssql_user_set" mssql_password="$mssql_password" mssql_db="$mssql_db" mssql_db_set="$mssql_db_set" mssql_server="$mssql_server" mssql_driver="$mssql_driver" mssql_driver_set="$mssql_driver_set" ]) ])dnl