diff --git a/bandb/Makefile.in b/bandb/Makefile.in index 6ad7e2af6..3d45e2822 100644 --- a/bandb/Makefile.in +++ b/bandb/Makefile.in @@ -29,9 +29,10 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@ PROGRAM_PREFIX = @PROGRAM_PREFIX@ +SQLITE_LIB = @SQLITE_LD@ ZIP_LIB = @ZLIB_LD@ -IRCDLIBS = @MODULES_LIBS@ -L../libratbox/src/.libs -lratbox @LIBS@ $(SSL_LIBS) $(ZIP_LIB) +IRCDLIBS = @MODULES_LIBS@ -L../libratbox/src/.libs -lratbox @LIBS@ $(SSL_LIBS) $(ZIP_LIB) $(SQLITE_LIB) INCLUDES = -I. -I../include -I../libratbox/include $(SSL_INCLUDES) CPPFLAGS = ${INCLUDES} @CPPFLAGS@ @@ -45,16 +46,22 @@ PROGS = $(pkglibexec_PROGS) $(bin_PROGS) BANDB_SOURCES = \ bandb.c \ rsdb_snprintf.c \ - rsdb_sqlite3.c \ - sqlite3.c + rsdb_sqlite3.c + +ifndef SQLITE_LIB + BANDB_SOURCES+=sqlite3.c +endif BANDB_OBJECTS = ${BANDB_SOURCES:.c=.o} BANTOOL_SOURCES = \ bantool.c \ rsdb_snprintf.c \ - rsdb_sqlite3.c \ - sqlite3.c + rsdb_sqlite3.c + +ifndef SQLITE_LIB + BANTOOL_SOURCES+=sqlite3.c +endif BANTOOL_OBJECTS = ${BANTOOL_SOURCES:.c=.o} diff --git a/configure b/configure index 7ec29cddf..e0d32d891 100755 --- a/configure +++ b/configure @@ -642,6 +642,7 @@ HELP_DIR logdir LOG_DIR ETC_DIR +SQLITE_LD ZLIB_LD ENCSPEED ALLOCA @@ -732,6 +733,7 @@ enable_ipv6 enable_openssl with_zlib_path enable_zlib +enable_shared_sqlite enable_ports enable_poll enable_select @@ -1379,6 +1381,7 @@ Optional Features: --enable-openssl=DIR Enable OpenSSL support (DIR optional). --disable-openssl Disable OpenSSL support. --disable-zlib Disable ziplinks support + --enable-shared-sqlite Use shared sqlite --enable-ports Force solaris I/O ports subsystem usage. --enable-poll Force poll() usage. --enable-select Force select() usage. @@ -7242,6 +7245,73 @@ fi +fi + +# Check whether --enable-shared-sqlite was given. +if test "${enable_shared_sqlite+set}" = set; then : + enableval=$enable_shared_sqlite; shared_sqlite=$enableval +else + shared_sqlite=no +fi + + +if test "$shared_sqlite" = yes; then + +ac_fn_c_check_header_mongrel "$LINENO" "sqlite3.h" "ac_cv_header_sqlite3_h" "$ac_includes_default" +if test "x$ac_cv_header_sqlite3_h" = xyes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for sqlite3_open in -lsqlite3" >&5 +$as_echo_n "checking for sqlite3_open in -lsqlite3... " >&6; } +if ${ac_cv_lib_sqlite3_sqlite3_open+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsqlite3 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char sqlite3_open (); +int +main () +{ +return sqlite3_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_sqlite3_sqlite3_open=yes +else + ac_cv_lib_sqlite3_sqlite3_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sqlite3_sqlite3_open" >&5 +$as_echo "$ac_cv_lib_sqlite3_sqlite3_open" >&6; } +if test "x$ac_cv_lib_sqlite3_sqlite3_open" = xyes; then : + + SQLITE_LD=-lsqlite3 + + +else + shared_sqlite=no +fi + + +else + shared_sqlite=no +fi + + + fi diff --git a/configure.ac b/configure.ac index b58de4ba5..2fa76a453 100644 --- a/configure.ac +++ b/configure.ac @@ -564,6 +564,21 @@ AC_CHECK_HEADER(zlib.h, [ fi +AC_ARG_ENABLE(shared-sqlite, +AC_HELP_STRING([--enable-shared-sqlite],[Use shared sqlite]), +[shared_sqlite=$enableval],[shared_sqlite=no]) + +if test "$shared_sqlite" = yes; then + +AC_CHECK_HEADER(sqlite3.h, [ + AC_CHECK_LIB(sqlite3, sqlite3_open, + [ + AC_SUBST(SQLITE_LD, -lsqlite3) + ], shared_sqlite=no) +], shared_sqlite=no) + +fi + dnl IO Loop Selection dnl =================