aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Khramtsov <ekhramtsov@process-one.net>2015-04-08 14:49:14 +0300
committerEvgeniy Khramtsov <ekhramtsov@process-one.net>2015-04-08 14:49:14 +0300
commitfb0e82f743ae37e59730ad5f20ad86e068c5c920 (patch)
tree78d3f518b47288e7e7ab7e7aeb5a85904d961513
parentDisable awkward trap_exit flag (diff)
Add SQLite3 library checks at the configure script
-rw-r--r--configure.ac7
-rw-r--r--m4/ax_lib_sqlite3.m4156
2 files changed, 163 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index a70530990..a3e26384b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -253,6 +253,13 @@ fi
ERLANG_DEPRECATED_TYPES_CHECK
+if test "$sqlite" = "true"; then
+ AX_LIB_SQLITE3([3.6.19])
+ if test "x$SQLITE3_VERSION" = "x"; then
+ AC_MSG_ERROR(SQLite3 library >= 3.6.19 was not found)
+ fi
+fi
+
AC_SUBST(hipe)
AC_SUBST(roster_gateway_workaround)
AC_SUBST(transient_supervisors)
diff --git a/m4/ax_lib_sqlite3.m4 b/m4/ax_lib_sqlite3.m4
new file mode 100644
index 000000000..77717167f
--- /dev/null
+++ b/m4/ax_lib_sqlite3.m4
@@ -0,0 +1,156 @@
+# ===========================================================================
+# http://www.gnu.org/software/autoconf-archive/ax_lib_sqlite3.html
+# ===========================================================================
+#
+# SYNOPSIS
+#
+# AX_LIB_SQLITE3([MINIMUM-VERSION])
+#
+# DESCRIPTION
+#
+# Test for the SQLite 3 library of a particular version (or newer)
+#
+# This macro takes only one optional argument, required version of SQLite
+# 3 library. If required version is not passed, 3.0.0 is used in the test
+# of existance of SQLite 3.
+#
+# If no intallation prefix to the installed SQLite library is given the
+# macro searches under /usr, /usr/local, and /opt.
+#
+# This macro calls:
+#
+# AC_SUBST(SQLITE3_CFLAGS)
+# AC_SUBST(SQLITE3_LDFLAGS)
+# AC_SUBST(SQLITE3_VERSION)
+#
+# And sets:
+#
+# HAVE_SQLITE3
+#
+# LICENSE
+#
+# Copyright (c) 2008 Mateusz Loskot <mateusz@loskot.net>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice
+# and this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+#serial 14
+
+AC_DEFUN([AX_LIB_SQLITE3],
+[
+ AC_ARG_WITH([sqlite3],
+ AS_HELP_STRING(
+ [--with-sqlite3=@<:@ARG@:>@],
+ [use SQLite 3 library @<:@default=yes@:>@, optionally specify the prefix for sqlite3 library]
+ ),
+ [
+ if test "$withval" = "no"; then
+ WANT_SQLITE3="no"
+ elif test "$withval" = "yes"; then
+ WANT_SQLITE3="yes"
+ ac_sqlite3_path=""
+ else
+ WANT_SQLITE3="yes"
+ ac_sqlite3_path="$withval"
+ fi
+ ],
+ [WANT_SQLITE3="yes"]
+ )
+
+ SQLITE3_CFLAGS=""
+ SQLITE3_LDFLAGS=""
+ SQLITE3_VERSION=""
+
+ if test "x$WANT_SQLITE3" = "xyes"; then
+
+ ac_sqlite3_header="sqlite3.h"
+
+ sqlite3_version_req=ifelse([$1], [], [3.0.0], [$1])
+ sqlite3_version_req_shorten=`expr $sqlite3_version_req : '\([[0-9]]*\.[[0-9]]*\)'`
+ sqlite3_version_req_major=`expr $sqlite3_version_req : '\([[0-9]]*\)'`
+ sqlite3_version_req_minor=`expr $sqlite3_version_req : '[[0-9]]*\.\([[0-9]]*\)'`
+ sqlite3_version_req_micro=`expr $sqlite3_version_req : '[[0-9]]*\.[[0-9]]*\.\([[0-9]]*\)'`
+ if test "x$sqlite3_version_req_micro" = "x" ; then
+ sqlite3_version_req_micro="0"
+ fi
+
+ sqlite3_version_req_number=`expr $sqlite3_version_req_major \* 1000000 \
+ \+ $sqlite3_version_req_minor \* 1000 \
+ \+ $sqlite3_version_req_micro`
+
+ AC_MSG_CHECKING([for SQLite3 library >= $sqlite3_version_req])
+
+ if test "$ac_sqlite3_path" != ""; then
+ ac_sqlite3_ldflags="-L$ac_sqlite3_path/lib"
+ ac_sqlite3_cppflags="-I$ac_sqlite3_path/include"
+ else
+ for ac_sqlite3_path_tmp in /usr /usr/local /opt ; do
+ if test -f "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header" \
+ && test -r "$ac_sqlite3_path_tmp/include/$ac_sqlite3_header"; then
+ ac_sqlite3_path=$ac_sqlite3_path_tmp
+ ac_sqlite3_cppflags="-I$ac_sqlite3_path_tmp/include"
+ ac_sqlite3_ldflags="-L$ac_sqlite3_path_tmp/lib"
+ break;
+ fi
+ done
+ fi
+
+ ac_sqlite3_ldflags="$ac_sqlite3_ldflags -lsqlite3"
+
+ saved_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $ac_sqlite3_cppflags"
+
+ AC_LANG_PUSH(C)
+ AC_COMPILE_IFELSE(
+ [
+ AC_LANG_PROGRAM([[@%:@include <sqlite3.h>]],
+ [[
+#if (SQLITE_VERSION_NUMBER >= $sqlite3_version_req_number)
+/* Everything is okay */
+#else
+# error SQLite version is too old
+#endif
+ ]]
+ )
+ ],
+ [
+ AC_MSG_RESULT([yes])
+ success="yes"
+ ],
+ [
+ AC_MSG_RESULT([not found])
+ success="no"
+ ]
+ )
+ AC_LANG_POP(C)
+
+ CPPFLAGS="$saved_CPPFLAGS"
+
+ if test "$success" = "yes"; then
+
+ SQLITE3_CFLAGS="$ac_sqlite3_cppflags"
+ SQLITE3_LDFLAGS="$ac_sqlite3_ldflags"
+
+ ac_sqlite3_header_path="$ac_sqlite3_path/include/$ac_sqlite3_header"
+
+ dnl Retrieve SQLite release version
+ if test "x$ac_sqlite3_header_path" != "x"; then
+ ac_sqlite3_version=`cat $ac_sqlite3_header_path \
+ | grep '#define.*SQLITE_VERSION.*\"' | sed -e 's/.* "//' \
+ | sed -e 's/"//'`
+ if test $ac_sqlite3_version != ""; then
+ SQLITE3_VERSION=$ac_sqlite3_version
+ else
+ AC_MSG_WARN([Cannot find SQLITE_VERSION macro in sqlite3.h header to retrieve SQLite version!])
+ fi
+ fi
+
+ AC_SUBST(SQLITE3_CFLAGS)
+ AC_SUBST(SQLITE3_LDFLAGS)
+ AC_SUBST(SQLITE3_VERSION)
+ AC_DEFINE([HAVE_SQLITE3], [], [Have the SQLITE3 library])
+ fi
+ fi
+])