dnl file : m4/oracle.m4 dnl author : Boris Kolpackov <boris@codesynthesis.com> dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC dnl license : GNU GPL v2; see accompanying LICENSE file dnl dnl ORACLE dnl AC_DEFUN([ORACLE], [ # Client. # AC_MSG_CHECKING([for oracle client program]) AC_ARG_WITH( [oracle-client], [AC_HELP_STRING([--with-oracle-client=PATH], [Oracle client program path (sqlplus by default)])], [case $withval in yes) oracle_client=sqlplus ;; no) AC_MSG_RESULT([]) AC_MSG_ERROR([need oracle client to run the tests]) ;; *) oracle_client=$withval ;; esac], [oracle_client=sqlplus]) $oracle_client -V 2>/dev/null 1>&2 if test x"$?" = x0; then AC_MSG_RESULT([$oracle_client]) else AC_MSG_RESULT([no]) AC_MSG_ERROR([oracle client is not found; consider using --with-oracle-client=PATH]) fi # User. # AC_MSG_CHECKING([for oracle database user]) AC_ARG_WITH( [oracle-user], [AC_HELP_STRING([--with-oracle-user=NAME], [Oracle database user (odb_test by default)])], [case $withval in yes) oracle_user=odb_test oracle_user_set=yes ;; no) oracle_user_set=no ;; *) oracle_user=$withval oracle_user_set=yes ;; esac], [oracle_user=odb_test oracle_user_set=yes]) if test x$oracle_user_set = xyes; then AC_MSG_RESULT(['$oracle_user']) else AC_MSG_RESULT([none]) fi # Password. # AC_MSG_CHECKING([for oracle database password]) AC_ARG_WITH( [oracle-password], [AC_HELP_STRING([--with-oracle-password=PASS], [Oracle database password (odb_test by default)])], [case $withval in yes) oracle_password=odb_test oracle_password_set=yes ;; no) oracle_password_set=no ;; *) oracle_password=$withval oracle_password_set=yes ;; esac], [oracle_password_set=no]) if test x$oracle_password_set = xyes; then AC_MSG_RESULT(['$oracle_password']) elif test x$oracle_user = xodb_test; then oracle_password=odb_test oracle_password_set=yes AC_MSG_RESULT(['$oracle_password']) elif test x$oracle_user != x/; then AC_MSG_RESULT([none]) AC_MSG_ERROR([password not specfied; Oracle requires a password]) fi # Service name. # AC_MSG_CHECKING([for oracle service name]) AC_ARG_WITH( [oracle-service], [AC_HELP_STRING([--with-oracle-service=NAME], [Oracle service name (default service if left empty). Note that all data associated with this user on this service WILL BE LOST!])], [case $withval in yes) oracle_service= oracle_service_set=yes ;; no) oracle_service_set=no ;; *) oracle_service=$withval oracle_service_set=yes ;; esac], [oracle_service_set=no]) if test x$oracle_service_set = xyes; then AC_MSG_RESULT(['$oracle_service']) else AC_MSG_RESULT([default]) fi # Host. # AC_MSG_CHECKING([for oracle database host]) AC_ARG_WITH( [oracle-host], [AC_HELP_STRING([--with-oracle-host=HOST], [Oracle database host (localhost by default)])], [case $withval in yes) oracle_host=localhost oracle_host_set=yes ;; no) oracle_host_set=no ;; *) oracle_host=$withval oracle_host_set=yes ;; esac], [oracle_host_set=no]) if test x$oracle_host_set = xyes; then AC_MSG_RESULT(['$oracle_host']) else AC_MSG_RESULT([localhost]) fi # Port. # AC_MSG_CHECKING([for oracle database port]) AC_ARG_WITH( [oracle-port], [AC_HELP_STRING([--with-oracle-port=PORT], [Oracle database port (standard Oracle port by default)])], [case $withval in yes) oracle_port=1521 oracle_port_set=yes ;; no) oracle_port_set=no ;; *) oracle_port=$withval oracle_port_set=yes ;; esac], [oracle_port_set=no]) if test x$oracle_port_set = xyes; then AC_MSG_RESULT(['$oracle_port']) else AC_MSG_RESULT([default]) fi # Create options file. # AC_CONFIG_COMMANDS([oracle.options], [ rm -f db.options echo '#! /bin/sh' >db-driver echo 'conn_str=' >>db-driver if test x$oracle_user_set = xyes; then echo "--user '$oracle_user'" >>db.options echo 'conn_str="'"$oracle_user"'"' >>db-driver fi if test x$oracle_password_set = xyes; then echo "--password '$oracle_password'" >>db.options echo 'conn_str="$conn_str/'"$oracle_password"'"' >>db-driver fi if test x$oracle_host_set = xyes; then echo "--host '$oracle_host'" >>db.options echo 'conn_str="$conn_str@//'"$oracle_host"'"' >>db-driver if test x$oracle_port_set = xyes; then echo "--port '$oracle_port'" >>db.options echo 'conn_str="$conn_str:'"$oracle_port"'"' >>db-driver fi fi if test x$oracle_service != x; then if test x$oracle_host_set = xno; then echo 'conn_str="$conn_str@"' >>db-driver fi echo "--service '$oracle_service'" >>db.options echo 'conn_str="$conn_str/'"$oracle_service"'"' >>db-driver fi echo 'if test x$[]1 != x; then' >>db-driver echo " exec $oracle_client -L -S "'$conn_str @$[]1' >>db-driver echo "else" >>db-driver echo " exec $oracle_client -L -S "'$conn_str' >>db-driver echo "fi" >>db-driver chmod +x db-driver ], [ oracle_client="$oracle_client" oracle_user="$oracle_user" oracle_user_set="$oracle_user_set" oracle_password="$oracle_password" oracle_password_set="$oracle_password_set" oracle_service="$oracle_service" oracle_service_set="$oracle_service_set" oracle_host="$oracle_host" oracle_host_set="$oracle_host_set" oracle_port="$oracle_port" oracle_port_set="$oracle_port_set" ]) ])dnl