build: make Rust toolchain optional, only required for PROXYSQLGENAI

- Rust/cargo checks now only run when PROXYSQLGENAI=1
- sqlite3 target now only depends on GenAI extensions (vec.o, libsqlite_rembed.a)
  when PROXYSQLGENAI is enabled
- Removed duplicate target definitions for sqlite-vec and sqlite-rembed
v3.0_mac2
René Cannaò 2 weeks ago
parent acdd4c91b1
commit 9410a60f6f

36
deps/Makefile vendored

@ -4,14 +4,16 @@ PROXYSQL_PATH := $(shell while [ ! -f ./src/proxysql_global.cpp ]; do cd ..; don
include $(PROXYSQL_PATH)/include/makefiles_vars.mk
# Rust toolchain detection
# Rust toolchain detection (only needed for PROXYSQLGENAI)
ifeq ($(PROXYSQLGENAI),1)
RUSTC := $(shell which rustc 2>/dev/null)
CARGO := $(shell which cargo 2>/dev/null)
ifndef RUSTC
$(error "rustc not found. Please install Rust toolchain")
$(error "rustc not found. Please install Rust toolchain (required for PROXYSQLGENAI)")
endif
ifndef CARGO
$(error "cargo not found. Please install Rust toolchain")
$(error "cargo not found. Please install Rust toolchain (required for PROXYSQLGENAI)")
endif
endif
# SQLite environment variables for sqlite-rembed build
@ -285,7 +287,17 @@ sqlite3/libsqlite_rembed.a: sqlite3/sqlite-rembed-0.0.1-alpha.9.tar.gz
cd sqlite3/sqlite-rembed-source && SQLITE3_INCLUDE_DIR=$(SQLITE3_INCLUDE_DIR) SQLITE3_LIB_DIR=$(SQLITE3_LIB_DIR) SQLITE3_STATIC=1 $(CARGO) build --release --features=sqlite-loadable/static --lib
cp sqlite3/sqlite-rembed-source/target/release/libsqlite_rembed.a sqlite3/libsqlite_rembed.a
ifeq ($(PROXYSQLGENAI),1)
sqlite3: sqlite3/sqlite3/sqlite3.o sqlite3/sqlite3/vec.o sqlite3/libsqlite_rembed.a
else
sqlite3: sqlite3/sqlite3/sqlite3.o
endif
# sqlite-vec: Vector similarity search extension (for GenAI)
sqlite-vec: sqlite3/sqlite3/vec.o
# sqlite-rembed: Remote embedding extension (Rust-based, for GenAI)
sqlite-rembed: sqlite3/libsqlite_rembed.a
libconfig/libconfig/out/libconfig++.a:
@ -375,24 +387,6 @@ libscram/lib/libscram.a:postgresql/postgresql/src/interfaces/libpq/libpq.a
libscram: libscram/lib/libscram.a
# sqlite-vec: Vector similarity search extension (for GenAI)
sqlite3/sqlite3/vec.o: sqlite3/sqlite3/sqlite3.o
cd sqlite3/sqlite3 && cp ../sqlite-vec-source/sqlite-vec.c . && cp ../sqlite-vec-source/sqlite-vec.h .
cd sqlite3/sqlite3 && ${CC} ${MYCFLAGS} -fPIC -c -o vec.o sqlite-vec.c -DSQLITE_CORE -DSQLITE_VEC_STATIC -DSQLITE_ENABLE_MEMORY_MANAGEMENT -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_DLL=1
sqlite-vec: sqlite3/sqlite3/vec.o
# sqlite-rembed: Remote embedding extension (Rust-based, for GenAI)
sqlite3/libsqlite_rembed.a: sqlite3/sqlite-rembed-0.0.1-alpha.9.tar.gz
cd sqlite3 && rm -rf sqlite-rembed-*/ sqlite-rembed-source/ || true
cd sqlite3 && tar -zxf sqlite-rembed-0.0.1-alpha.9.tar.gz
mv sqlite3/sqlite-rembed-0.0.1-alpha.9 sqlite3/sqlite-rembed-source
cd sqlite3/sqlite-rembed-source && SQLITE3_INCLUDE_DIR=$(SQLITE3_INCLUDE_DIR) SQLITE3_LIB_DIR=$(SQLITE3_LIB_DIR) SQLITE3_STATIC=1 $(CARGO) build --release --features=sqlite-loadable/static --lib
cp sqlite3/sqlite-rembed-source/target/release/libsqlite_rembed.a sqlite3/libsqlite_rembed.a
sqlite-rembed: sqlite3/libsqlite_rembed.a
### clean targets
cleanpart:

Loading…
Cancel
Save