dnl Find the compiler and linker flags for SQLite. dnl dnl Finds the compiler and linker flags for linking with the SQLite library. dnl Provides the --with-sqlite, --with-sqlite-lib, and --with-sqlite-include dnl configure options to specify non-standard paths to the SQLite libraries or dnl header files. Currently, only SQLite 3 is considered sufficient. dnl dnl Provides the macros RRA_LIB_SQLITE and RRA_LIB_SQLITE_OPTIONAL and sets dnl the substitution variables SQLITE_CPPFLAGS, SQLITE_LDFLAGS, and dnl SQLITE_LIBS. Also provides RRA_LIB_SQLITE_SWITCH to set CPPFLAGS, dnl LDFLAGS, and LIBS to include the SQLite libraries, saving the current dnl values first, and RRA_LIB_SQLITE_RESTORE to restore those settings to dnl before the last RRA_LIB_SQLITE_SWITCH. Defines HAVE_SQLITE and sets dnl rra_use_SQLITE to true if libevent is found. If it isn't found, the dnl substitution variables will be empty. dnl dnl Depends on the lib-helper.m4 framework. dnl dnl The canonical version of this file is maintained in the rra-c-util dnl package, available at . dnl dnl Written by Russ Allbery dnl Copyright 2014 dnl The Board of Trustees of the Leland Stanford Junior University dnl dnl This file is free software; the authors give unlimited permission to copy dnl and/or distribute it, with or without modifications, as long as this dnl notice is preserved. dnl dnl SPDX-License-Identifier: FSFULLR dnl Save the current CPPFLAGS, LDFLAGS, and LIBS settings and switch to dnl versions that include the libevent flags. Used as a wrapper, with dnl RRA_LIB_SQLITE_RESTORE, around tests. AC_DEFUN([RRA_LIB_SQLITE_SWITCH], [RRA_LIB_HELPER_SWITCH([SQLITE])]) dnl Restore CPPFLAGS, LDFLAGS, and LIBS to their previous values before dnl RRA_LIB_SQLITE_SWITCH was called. AC_DEFUN([RRA_LIB_SQLITE_RESTORE], [RRA_LIB_HELPER_RESTORE([SQLITE])]) dnl Checks if SQLite is present. The single argument, if "true", says to fail dnl if the SQLite library could not be found. Prefer probing with pkg-config dnl if available and the --with flags were not given. AC_DEFUN([_RRA_LIB_SQLITE_INTERNAL], [RRA_LIB_HELPER_PATHS([SQLITE]) AS_IF([test x"$SQLITE_CPPFLAGS" = x && test x"$SQLITE_LDFLAGS" = x], [PKG_CHECK_EXISTS([sqlite3], [PKG_CHECK_MODULES([SQLITE], [sqlite3]) SQLITE_CPPFLAGS="$SQLITE_CFLAGS"])]) AS_IF([test x"$SQLITE_LIBS" = x], [RRA_LIB_SQLITE_SWITCH LIBS= AC_SEARCH_LIBS([sqlite3_open_v2], [sqlite3], [SQLITE_LIBS="$LIBS"], [AS_IF([test x"$1" = xtrue], [AC_MSG_ERROR([cannot find usable SQLite library])])]) RRA_LIB_SQLITE_RESTORE]) RRA_LIB_SQLITE_SWITCH AC_CHECK_HEADERS([sqlite3.h]) RRA_LIB_SQLITE_RESTORE]) dnl The main macro for packages with mandatory SQLite 3 support. AC_DEFUN([RRA_LIB_SQLITE], [RRA_LIB_HELPER_VAR_INIT([SQLITE]) RRA_LIB_HELPER_WITH([sqlite], [SQLite], [SQLITE]) _RRA_LIB_SQLITE_INTERNAL([true]) rra_use_SQLITE=true AC_DEFINE([HAVE_SQLITE], 1, [Define if SQLite is available.])]) dnl The main macro for packages with optional SQLite support. AC_DEFUN([RRA_LIB_SQLITE_OPTIONAL], [RRA_LIB_HELPER_VAR_INIT([SQLITE]) RRA_LIB_HELPER_WITH_OPTIONAL([sqlite], [SQLite], [SQLITE]) AS_IF([test x"$rra_use_SQLITE" != xfalse], [AS_IF([test x"$rra_use_SQLITE" = xtrue], [_RRA_LIB_SQLITE_INTERNAL([true])], [_RRA_LIB_SQLITE_INTERNAL([false])])]) AS_IF([test x"$SQLITE_LIBS" != x], [rra_use_SQLITE=true AC_DEFINE([HAVE_SQLITE], 1, [Define if SQLite is available.])])])