dnl $Id$ dnl dnl @synopsis AX_LIB_SQLITE3([MINIMUM-VERSION]) dnl dnl Test for the SQLite 3 library of a particular version (or newer) dnl dnl This macro takes only one optional argument, required version dnl of SQLite 3 library. If required version is not passed, dnl 3.0.0 is used in the test of existence of SQLite 3. dnl dnl If no installation prefix to the installed SQLite library is given dnl the macro searches under /usr, /usr/local, and /opt. dnl dnl This macro calls: dnl dnl AC_SUBST(SQLITE3_CFLAGS) dnl AC_SUBST(SQLITE3_LDFLAGS) dnl AC_SUBST(SQLITE3_VERSION) dnl dnl And sets: dnl dnl HAVE_SQLITE3 dnl dnl @category InstalledPackages dnl @category Cxx dnl @author Mateusz Loskot dnl @version $Date$ dnl @license AllPermissive dnl dnl $Id$ dnl AC_DEFUN([AX_LIB_SQLITE3], [ AC_ARG_WITH([sqlite3], AC_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="" HAVE_SQLITE3="no" 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` if test "x$WANT_SQLITE3" = "xyes"; then ac_sqlite3_header="sqlite3.h" LIB_SQLITE3_FOUND=no if test "$ac_sqlite3_path" != ""; then unset ac_cv_lib_sqlite3_sqlite3_open saved_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(sqlite3,sqlite3_open,LIB_SQLITE3_FOUND=yes,LIB_SQLITE3_FOUND=no,-L$ac_sqlite3_path/lib) LIBS="$saved_LIBS" if test "$LIB_SQLITE3_FOUND" = "yes"; then ac_sqlite3_ldflags="-L$ac_sqlite3_path/lib" fi 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 unset ac_cv_lib_sqlite3_sqlite3_open saved_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(sqlite3,sqlite3_open,LIB_SQLITE3_FOUND=yes,LIB_SQLITE3_FOUND=no,) LIBS="$saved_LIBS" if test "$LIB_SQLITE3_FOUND" = "yes"; then ac_sqlite3_ldflags="" else unset ac_cv_lib_sqlite3_sqlite3_open saved_LIBS="$LIBS" LIBS="" AC_CHECK_LIB(sqlite3,sqlite3_open,LIB_SQLITE3_FOUND=yes,LIB_SQLITE3_FOUND=no,-L$ac_sqlite3_path_tmp/lib) LIBS="$saved_LIBS" if test "$LIB_SQLITE3_FOUND" = "yes"; then ac_sqlite3_ldflags="-L$ac_sqlite3_path_tmp/lib" fi fi ac_sqlite3_cppflags="-I$ac_sqlite3_path_tmp/include" break; fi done fi if test "$LIB_SQLITE3_FOUND" = "no"; then WANT_SQLITE3="no" fi fi AC_MSG_CHECKING([for SQLite3 library >= $sqlite3_version_req]) if test "x$WANT_SQLITE3" = "xyes"; then 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 ]], [[ #if (SQLITE_VERSION_NUMBER >= $sqlite3_version_req_number) // Everything is okay #else # error SQLite version is too old #endif ]] ) ], [ AC_MSG_RESULT([yes]) HAVE_SQLITE3="yes" success="yes" ], [ AC_MSG_RESULT([not found]) HAVE_SQLITE3="no" 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([Can not find SQLITE_VERSION macro in sqlite3.h header to retrieve SQLite version!]) fi fi AC_SUBST([SQLITE3_VERSION]) fi AC_SUBST([SQLITE3_CFLAGS]) AC_SUBST([SQLITE3_LDFLAGS]) else AC_MSG_RESULT([disabled]) fi ])