@@ -105,6 +105,7 @@ else ifeq ($(PLATFORM),android)
105105 endif
106106
107107 LDFLAGS := -shared -static-libstdc++ -llog -Wl,-z,max-page-size=16384
108+ TEST_LDFLAGS := -ldl -llog
108109
109110else ifeq ($(PLATFORM),ios)
110111 EXT := dylib
@@ -326,6 +327,13 @@ ifeq ($(OMIT_LOCAL_ENGINE),0)
326327 endif
327328endif
328329
330+ # Android: compile SQLite amalgamation into unittest (set SQLITE_AMALGAM=path/to/sqlite3.c)
331+ SQLITE_AMALGAM ?=
332+ TEST_SQLITE_OBJ :=
333+ ifneq ($(SQLITE_AMALGAM ) ,)
334+ TEST_SQLITE_OBJ := $(BUILD_DIR ) /test-sqlite3.o
335+ endif
336+
329337$(BUILD_DIR ) /unittest.o : $(TEST_DIR ) /unittest.c | $(BUILD_DIR )
330338 @echo " Compiling unittest.c..."
331339 @$(CC ) $(CFLAGS ) $(TEST_DEFINES ) $(DEFINES ) $(INCLUDES ) -c $< -o $@
@@ -334,11 +342,15 @@ $(BUILD_DIR)/test-%.o: $(SRC_DIR)/%.c | $(BUILD_DIR)
334342 @echo " Compiling $< (for test)..."
335343 @$(CC ) $(CFLAGS ) $(TEST_DEFINES ) $(DEFINES ) $(INCLUDES ) -c $< -o $@
336344
345+ $(BUILD_DIR ) /test-sqlite3.o : $(SQLITE_AMALGAM ) | $(BUILD_DIR )
346+ @echo " Compiling sqlite3.c (amalgamation)..."
347+ @$(CC ) $(CFLAGS ) -DSQLITE_ENABLE_FTS5 -c $< -o $@
348+
337349TEST_C_OBJECTS := $(patsubst $(SRC_DIR ) /% .c,$(BUILD_DIR ) /test-% .o,$(C_SOURCES ) )
338350
339- $(BUILD_DIR ) /unittest : $(BUILD_DIR ) /unittest.o $(TEST_C_OBJECTS ) $(LLAMA_LIBS ) | $(BUILD_DIR )
351+ $(BUILD_DIR ) /unittest : $(BUILD_DIR ) /unittest.o $(TEST_C_OBJECTS ) $(TEST_SQLITE_OBJ ) $( LLAMA_LIBS ) | $(BUILD_DIR )
340352 @echo " Linking unittest..."
341- @$(LINKER ) $(BUILD_DIR ) /unittest.o $(TEST_C_OBJECTS ) $(LLAMA_LIBS ) \
353+ @$(LINKER ) $(BUILD_DIR ) /unittest.o $(TEST_C_OBJECTS ) $(TEST_SQLITE_OBJ ) $( LLAMA_LIBS ) \
342354 $(TEST_LDFLAGS ) $(FRAMEWORKS ) $(TEST_LINK_EXTRAS ) \
343355 -o $@
344356
0 commit comments