aboutsummaryrefslogtreecommitdiff
path: root/m4/libodb-pgsql.m4
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-07-22 15:55:44 +0200
committerConstantin Michael <constantin@codesynthesis.com>2011-07-22 15:55:44 +0200
commitf1de376fd1df540864b72e6e4c1edee731f05d6c (patch)
treed79837366181ef5489e7645028aedf4e6a2b0b29 /m4/libodb-pgsql.m4
parent61f4a460fa3fb297b056597353e2e2f3330db7b3 (diff)
Make automake scripts PostgreSQL aware
Diffstat (limited to 'm4/libodb-pgsql.m4')
-rw-r--r--m4/libodb-pgsql.m484
1 files changed, 84 insertions, 0 deletions
diff --git a/m4/libodb-pgsql.m4 b/m4/libodb-pgsql.m4
new file mode 100644
index 0000000..0e92478
--- /dev/null
+++ b/m4/libodb-pgsql.m4
@@ -0,0 +1,84 @@
+dnl file : m4/libodb-pgsql.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 LIBODB_PGSQL([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+dnl
+dnl
+AC_DEFUN([LIBODB_PGSQL], [
+libodb_pgsql_found=no
+
+AC_ARG_WITH(
+ [libodb-pgsql],
+ [AC_HELP_STRING([--with-libodb-pgsql=DIR],[location of libodb-pgsql build directory])],
+ [libodb_pgsql_dir=${withval}],
+ [libodb_pgsql_dir=])
+
+AC_MSG_CHECKING([for libodb-pgsql])
+
+# If libodb_pgsql_dir was given, add the necessary preprocessor and
+# linker flags.
+#
+if test x"$libodb_pgsql_dir" != x; then
+ save_CPPFLAGS="$CPPFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+
+ AS_SET_CATFILE([abs_libodb_pgsql_dir], [$ac_pwd], [$libodb_pgsql_dir])
+
+ CPPFLAGS="$CPPFLAGS -I$abs_libodb_pgsql_dir"
+ LDFLAGS="$LDFLAGS -L$abs_libodb_pgsql_dir/odb/pgsql"
+fi
+
+save_LIBS="$LIBS"
+LIBS="-lodb-pgsql $LIBS"
+
+CXX_LIBTOOL_LINK_IFELSE(
+AC_LANG_SOURCE([[
+#include <odb/pgsql/exceptions.hxx>
+
+void
+f ()
+{
+}
+
+const char*
+g ()
+{
+ try
+ {
+ f ();
+ }
+ catch (const odb::pgsql::database_exception& e)
+ {
+ return e.what ();
+ }
+ return 0;
+}
+
+int
+main ()
+{
+ const char* m (g ());
+ return m != 0;
+}
+]]),
+[libodb_pgsql_found=yes])
+
+if test x"$libodb_pgsql_found" = xno; then
+ LIBS="$save_LIBS"
+
+ if test x"$libodb_pgsql_dir" != x; then
+ CPPFLAGS="$save_CPPFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+ fi
+fi
+
+if test x"$libodb_pgsql_found" = xyes; then
+ AC_MSG_RESULT([yes])
+ $1
+else
+ AC_MSG_RESULT([no])
+ $2
+fi
+])dnl