diff --git a/Config.uk b/Config.uk index 456b942..2052b36 100644 --- a/Config.uk +++ b/Config.uk @@ -1,10 +1,17 @@ +imply LIBUKMMAP +select LIBPOSIX_SYSINFO +depends on HAVE_LIBC +select LIBPTHREAD_EMBEDDED + menuconfig LIBSQLITE - bool "SQLite" + bool "libsqlite" + default n + help + Enable the SQLite library + +config LIBSQLITE_ENABLE_SHELL + bool "Enable SQLite shell (CLI) interface" default n - imply LIBUKMMAP - select LIBPOSIX_SYSINFO - depends on HAVE_LIBC - select LIBPTHREAD_EMBEDDED if LIBSQLITE config LIBSQLITE_MAIN_FUNCTION diff --git a/Library.uk b/Library.uk index f97efd3..4ba60bc 100644 --- a/Library.uk +++ b/Library.uk @@ -1,6 +1,7 @@ name := "sqlite" -description := "A C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine." +description := "A C-language library that implements a small, fast, self-contained SQL database engine" gitrepo := "https://github.com/sqlite/sqlite.git" homepage := "https://www.sqlite.org/" license := "blessing" -version := 3400100 sha256:49112cc7328392aa4e3e5dae0b2f6736d0153430143d21f69327788ff4efe734 https://www.sqlite.org/2022/sqlite-amalgamation-3400100.zip +version := 3500100 sha256:41716b44ac8777188c4c3f1f370f01c9cb9e3b6428eb5c981d086c35de2d9d3f https://www.sqlite.org/2025/sqlite-amalgamation-3500100.zip + diff --git a/Makefile.uk b/Makefile.uk index 92845f6..2f7117d 100644 --- a/Makefile.uk +++ b/Makefile.uk @@ -30,7 +30,6 @@ # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -# ################################################################################ # App registration @@ -40,18 +39,15 @@ $(eval $(call addlib_s,libsqlite,$(CONFIG_LIBSQLITE))) ################################################################################ # Sources ################################################################################ -LIBSQLITE_VERSION = 3400100 +LIBSQLITE_VERSION = 3500100 LIBSQLITE_BASENAME = sqlite-amalgamation-$(LIBSQLITE_VERSION) -LIBSQLITE_URL = https://www.sqlite.org/2022/$(LIBSQLITE_BASENAME).zip -LIBSQLITE_PATCHDIR = $(LIBSQLITE_BASE)/patches +LIBSQLITE_URL = https://www.sqlite.org/2025/$(LIBSQLITE_BASENAME).zip +LIBSQLITE_PATCHDIR = $(LIBSQLITE_BASE)/patches +LIBSQLITE_SRC = $(LIBSQLITE_ORIGIN)/$(LIBSQLITE_BASENAME) + $(eval $(call fetch,libsqlite,$(LIBSQLITE_URL))) $(eval $(call patch,libsqlite,$(LIBSQLITE_PATCHDIR),$(LIBSQLITE_BASENAME))) -################################################################################ -# Helpers -################################################################################ -LIBSQLITE_SRC = $(LIBSQLITE_ORIGIN)/$(LIBSQLITE_BASENAME) - ################################################################################ # Library includes ################################################################################ @@ -60,28 +56,42 @@ CINCLUDES-$(CONFIG_LIBSQLITE) += -I$(LIBSQLITE_SRC) CXXINCLUDES-$(CONFIG_LIBSQLITE) += -I$(LIBSQLITE_SRC) ################################################################################ -# Global flags +# Flags ################################################################################ -LIBSQLITE_FLAGS = -D_HAVE_SQLITE_CONFIG_H -DSQLITE_OMIT_LOAD_EXTENSION +LIBSQLITE_FLAGS = -D_HAVE_SQLITE_CONFIG_H \ + -DSQLITE_OMIT_LOAD_EXTENSION \ + -DSQLITE_OMIT_LOCALTIME \ + -DSQLITE_OS_UNIX=0 \ + -DSQLITE_OS_OTHER=1 \ + -DSQLITE_THREADSAFE=0 # Suppress some warnings to make the build process look neater -LIBSQLITE_SUPPRESS_FLAGS-y += -Wno-unused-parameter -Wno-unused-variable \ --Wno-cast-function-type -Wno-char-subscripts +LIBSQLITE_SUPPRESS_FLAGS-y += -Wno-unused-parameter \ + -Wno-unused-variable \ + -Wno-cast-function-type \ + -Wno-char-subscripts -LIBSQLITE_SUPPRESS_FLAGS-$(call gcc_version_ge,7,0) +=-Wimplicit-fallthrough=0 \ +LIBSQLITE_SUPPRESS_FLAGS-$(call gcc_version_ge,7,0) += -Wimplicit-fallthrough=0 LIBSQLITE_CFLAGS-y += $(LIBSQLITE_FLAGS) LIBSQLITE_CFLAGS-y += $(LIBSQLITE_SUPPRESS_FLAGS-y) ################################################################################ -# Glue code +# Sources ################################################################################ -LIBSQLITE_SRCS-$(CONFIG_LIBSQLITE_MAIN_FUNCTION) += $(LIBSQLITE_BASE)/main.c|unikraft +LIBSQLITE_SRCS-y += $(LIBSQLITE_SRC)/sqlite3.c +LIBSQLITE_SRCS-$(CONFIG_LIBSQLITE_ENABLE_SHELL) += $(LIBSQLITE_SRC)/shell.c + +# Optional: Shell support (CLI app interface, not needed for lib use) +LIBSQLITE_CFLAGS-y += -Dmain=sqlite_main -Dwmain=sqlite_main +LIBSQLITE_SRCS-y += $(LIBSQLITE_SRC)/shell.c + +# Optional: Dummy main.c to satisfy Unikraft if needed +LIBSQLITE_SRCS-$(CONFIG_LIBSQLITE_MAIN_FUNCTION) += $(LIBSQLITE_BASE)/main.c ################################################################################ -# SQLite sources +# Object generation ################################################################################ -LIBSQLITE_SHELL_FLAGS-y += -Dmain=sqlite_main -Dwmain=sqlite_main - -LIBSQLITE_SRCS-y += $(LIBSQLITE_SRC)/shell.c -LIBSQLITE_SRCS-y += $(LIBSQLITE_SRC)/sqlite3.c +LIBSQLITE_OBJS-y := $(LIBSQLITE_SRCS-y:.c=.o) +$(eval $(call addlibobjs,libsqlite,$(LIBSQLITE_OBJS-y))) +$(eval $(call addlib_s,libsqlite,$(CONFIG_LIBSQLITE)))