AC_INIT(sql_oracle.c) AC_REVISION($Revision: 1.10 $) AC_DEFUN(modname,[rlm_sql_oracle]) fail= sql_oracle_ldflags= sql_oracle_cflags= if test x$with_[]modname != xno; then AC_MSG_CHECKING([for oci.h]) dnl # dnl # See if the user passed in the oracle_home_dir option and dnl # use that first. If not, use $ORACLE_HOME. If that's dnl # not defined, give up. There's no point in blindly dnl # hunting around for Oracle - there's no standard place dnl # for it. Any sane Oracle user/developer should have $ORACLE_HOME dnl # defined anyways. dnl # dnl ############################################################ dnl # Check for command line options dnl ############################################################ dnl extra argument: --with-oracle-include-dir=DIR oracle_include_dir= AC_ARG_WITH(oracle-include-dir, [AS_HELP_STRING([--with-oracle-include-dir=DIR], [Directory where the Oracle includes may be found. It should be located under ORACLE_HOME if you have client SDK installed. Use --with-oracle-include-dir=yes if you are sure that your compiler include path includes Oracle include dir. Hint: you might try to do: locate oci.h])], [case "$withval" in no) AC_MSG_ERROR(Need oracle-include-dir) ;; yes) ;; *) oracle_include_dir="$withval" ;; esac]) dnl extra argument: --with-oracle-lib-dir=DIR oracle_lib_dir= AC_ARG_WITH(oracle-lib-dir, [AS_HELP_STRING([--with-oracle-lib-dir=DIR], [Directory where the oracle libraries may be found. It should be located under ORACLE_HOME. iUse --with-oracle-lib-dir=yes if you are sure that your linker will find the necessary Oracle client libs. Hint: you might try to do: locate libclntsh.so])], [case "$withval" in no) AC_MSG_ERROR(Need oracle-lib-dir) ;; yes) ;; *) oracle_lib_dir="$withval" ;; esac]) AC_TRY_COMPILE([#include <oci.h>], [ int a = 1;], ORACLE_INCLUDE=" ", ORACLE_INCLUDE= ) RLM_SQL_ORA_WORKING_CFLAGS_FOR_LINKING_TEST= if test "x$ORACLE_INCLUDE" = "x" ; then old_CFLAGS="$CFLAGS" CFLAGS="$old_CFLAGS -I$oracle_include_dir" AC_TRY_COMPILE([#include <oci.h>], [ int a = 1;], ORACLE_INCLUDE="-I$oracle_include_dir", ORACLE_INCLUDE= ) RLM_SQL_ORA_WORKING_CFLAGS_FOR_LINKING_TEST="$CFLAGS" CFLAGS="$old_CFLAGS" fi # Proceed to linking makes only sense if include dir is OK. if test "x$ORACLE_INCLUDE" != "x" ; then old_LIBS="$LIBS" old_CFLAGS="$CFLAGS" CFLAGS="$RLM_SQL_ORA_WORKING_CFLAGS_FOR_LINKING_TEST" ORACLE_LIBDIR_SWITCH= if test "x$oracle_lib_dir" != "x" ; then ORACLE_LIBDIR_SWITCH="-L${oracle_lib_dir} " fi LIBS="$old_LIBS $ORACLE_LIBDIR_SWITCH -lclntsh -lnnz10" AC_TRY_LINK([#include <oci.h> static OCIEnv *p_env; static OCIError *p_err; static OCISvcCtx *p_svc; static OCIStmt *p_sql; static OCIDefine *p_dfn = (OCIDefine *) 0; static OCIBind *p_bnd = (OCIBind *) 0; ], [ int p_bvi; char p_sli[20]; int rc; char errbuf[100]; int errcode; rc = OCIInitialize((ub4) OCI_DEFAULT, (dvoid *)0, /* Initialize OCI */ (dvoid * (*)(dvoid *, size_t)) 0, (dvoid * (*)(dvoid *, dvoid *, size_t))0, (void (*)(dvoid *, dvoid *)) 0 ); ], ORACLE_LIBS="$ORACLE_LIBDIR_SWITCH -lclntsh -lnnz10", ORACLE_LIBS= ) LIBS="$old_LIBS" CFLAGS="$old_CFLAGS" fi if test "x$ORACLE_INCLUDE" = "x"; then AC_MSG_RESULT(no) AC_MSG_WARN([oracle headers not found. Use --with-oracle-include-dir=<path>.]) fail="$fail oci.h" else sql_oracle_cflags="${sql_oracle_cflags} ${ORACLE_INCLUDE}" AC_MSG_RESULT(yes) if test "x$ORACLE_LIBS" = "x"; then AC_MSG_WARN([oracle libraries not found. Use --with-oracle-lib-dir=<path>.]) fail="$fail libclntsh libnnz10" else sql_oracle_ldflags="${sql_oracle_ldflags} $ORACLE_LIBS" AC_MSG_RESULT(yes) fi fi targetname=modname else targetname= echo \*\*\* module modname is disabled. fi dnl Don't change this section. if test "x$fail" != x; then if test "x${enable_strict_dependencies}" = xyes; then AC_MSG_ERROR([set --without-]modname[ to disable it explicitly.]) else AC_MSG_WARN([silently not building ]modname[.]) AC_MSG_WARN([FAILURE: ]modname[ requires:$fail.]); targetname= fi fi AC_SUBST(sql_oracle_ldflags) AC_SUBST(sql_oracle_cflags) AC_SUBST(targetname) AC_OUTPUT(Makefile)