nfsdcld: add autoconf goop for sqlite
authorJeff Layton <jlayton@redhat.com>
Thu, 26 Apr 2012 15:29:22 +0000 (11:29 -0400)
committerSteve Dickson <steved@redhat.com>
Thu, 26 Apr 2012 17:25:03 +0000 (13:25 -0400)
Mostly cribbed from Chuck Lever's new-statd rewrite a few years ago...

This adds an autoconf test for the sqlite3 library and includes. If
they're not working properly and nfsdcld was enabled, then configure
will error out.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
aclocal/libsqlite3.m4 [new file with mode: 0644]
configure.ac

diff --git a/aclocal/libsqlite3.m4 b/aclocal/libsqlite3.m4
new file mode 100644 (file)
index 0000000..73d1e46
--- /dev/null
@@ -0,0 +1,33 @@
+dnl Checks for matching sqlite3 header and library, and
+dnl sufficient sqlite3 version.
+dnl
+AC_DEFUN([AC_SQLITE3_VERS], [
+  AC_CHECK_HEADERS([sqlite3.h], ,)
+
+  dnl look for the library; do not add to LIBS if found
+  AC_CHECK_LIB([sqlite3], [sqlite3_libversion_number], [LIBSQLITE=-lsqlite3], ,)
+  AC_SUBST(LIBSQLITE)
+
+  AC_MSG_CHECKING(for suitable sqlite3 version)
+
+  AC_CACHE_VAL([libsqlite3_cv_is_recent],
+   [
+    saved_LIBS="$LIBS"
+    LIBS=-lsqlite3
+    AC_TRY_RUN([
+       #include <stdio.h>
+       #include <sqlite3.h>
+       int main()
+       {
+               int vers = sqlite3_libversion_number();
+
+               return vers != SQLITE_VERSION_NUMBER ||
+                       vers < 3003000;
+       }
+       ], [libsqlite3_cv_is_recent=yes], [libsqlite3_cv_is_recent=no],
+       [libsqlite3_cv_is_recent=unknown])
+    LIBS="$saved_LIBS"])
+
+  AC_MSG_RESULT($libsqlite3_cv_is_recent)
+  AM_CONDITIONAL(CONFIG_SQLITE3, [test "$libsqlite3_cv_is_recent" = "yes"])
+])dnl
index a9ffb68..0d29dc7 100644 (file)
@@ -266,6 +266,15 @@ if test "$enable_nfsv4" = yes; then
   dnl check for the keyutils libraries and headers
   AC_KEYUTILS
 
+  dnl Check for sqlite3
+  AC_SQLITE3_VERS
+
+  if test "$enable_nfsdcld" = "yes"; then
+       if test "$libsqlite3_cv_is_recent" != "yes" ; then
+               AC_MSG_ERROR([nfsdcld requires sqlite3])
+       fi
+  fi
+
   AM_CONDITIONAL(CONFIG_NFSDCLD, [test "$enable_nfsdcld" = "yes" ])
 
   dnl librpcsecgss already has a dependency on libgssapi,