From aefb392d4d6bcb59c3f3df34018d754ac4f718e9 Mon Sep 17 00:00:00 2001 From: Constantin Michael Date: Thu, 24 Nov 2011 09:58:48 +0200 Subject: Add Oracle to automake and Visual Studio build --- m4/libodb-oracle.m4 | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 m4/libodb-oracle.m4 (limited to 'm4/libodb-oracle.m4') diff --git a/m4/libodb-oracle.m4 b/m4/libodb-oracle.m4 new file mode 100644 index 0000000..319377f --- /dev/null +++ b/m4/libodb-oracle.m4 @@ -0,0 +1,84 @@ +dnl file : m4/libodb-oracle.m4 +dnl author : Boris Kolpackov +dnl copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +dnl license : GNU GPL v2; see accompanying LICENSE file +dnl +dnl LIBODB_ORACLE([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +dnl +dnl +AC_DEFUN([LIBODB_ORACLE], [ +libodb_oracle_found=no + +AC_ARG_WITH( + [libodb-oracle], + [AC_HELP_STRING([--with-libodb-oracle=DIR],[location of libodb-oracle build directory])], + [libodb_oracle_dir=${withval}], + [libodb_oracle_dir=]) + +AC_MSG_CHECKING([for libodb-oracle]) + +# If libodb_oracle_dir was given, add the necessary preprocessor and +# linker flags. +# +if test x"$libodb_oracle_dir" != x; then + save_CPPFLAGS="$CPPFLAGS" + save_LDFLAGS="$LDFLAGS" + + AS_SET_CATFILE([abs_libodb_oracle_dir], [$ac_pwd], [$libodb_oracle_dir]) + + CPPFLAGS="$CPPFLAGS -I$abs_libodb_oracle_dir" + LDFLAGS="$LDFLAGS -L$abs_libodb_oracle_dir/odb/oracle" +fi + +save_LIBS="$LIBS" +LIBS="-lodb-oracle $LIBS" + +CXX_LIBTOOL_LINK_IFELSE( +AC_LANG_SOURCE([[ +#include + +void +f () +{ +} + +const char* +g () +{ + try + { + f (); + } + catch (const odb::oracle::database_exception& e) + { + return e.what (); + } + return 0; +} + +int +main () +{ + const char* m (g ()); + return m != 0; +} +]]), +[libodb_oracle_found=yes]) +libodb_oracle_found=yes +if test x"$libodb_oracle_found" = xno; then + LIBS="$save_LIBS" + + if test x"$libodb_oracle_dir" != x; then + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + fi +fi + +if test x"$libodb_oracle_found" = xyes; then + AC_MSG_RESULT([yes]) + $1 +else + AC_MSG_RESULT([no]) + $2 +fi +])dnl -- cgit v1.1