--- Makefile.orig 2026-03-31 07:59:06 UTC +++ Makefile @@ -62,22 +62,28 @@ TARGET_STATIC=$(prefix)/libsqlite_vec0.a TARGET_LOADABLE=$(prefix)/vec0.$(LOADABLE_EXTENSION) TARGET_STATIC=$(prefix)/libsqlite_vec0.a +TARGET_SHARED=$(prefix)/libsqlite_vec0.so TARGET_STATIC_H=$(prefix)/sqlite-vec.h TARGET_CLI=$(prefix)/sqlite3 loadable: $(TARGET_LOADABLE) static: $(TARGET_STATIC) +shared: $(TARGET_SHARED) cli: $(TARGET_CLI) all: loadable static cli OBJS_DIR=$(prefix)/.objs +OBJS_DIR_SHARED=$(prefix)/.objs-shared LIBS_DIR=$(prefix)/.libs BUILD_DIR=$(prefix)/.build $(OBJS_DIR): $(prefix) mkdir -p $@ +$(OBJS_DIR_SHARED): $(prefix) + mkdir -p $@ + $(LIBS_DIR): $(prefix) mkdir -p $@ @@ -87,24 +93,29 @@ $(TARGET_LOADABLE): sqlite-vec.c sqlite-vec.h $(prefix $(TARGET_LOADABLE): sqlite-vec.c sqlite-vec.h $(prefix) $(CC) \ + $(CFLAGS) \ -fPIC -shared \ -Wall -Wextra \ -Ivendor/ \ - -O3 \ $(CFLAGS) \ $< -o $@ $(TARGET_STATIC): sqlite-vec.c sqlite-vec.h $(prefix) $(OBJS_DIR) $(CC) -Ivendor/ $(CFLAGS) -DSQLITE_CORE -DSQLITE_VEC_STATIC \ - -O3 -c $< -o $(OBJS_DIR)/vec.o + -c $< -o $(OBJS_DIR)/vec.o $(AR) rcs $@ $(OBJS_DIR)/vec.o +$(TARGET_SHARED): sqlite-vec.c sqlite-vec.h $(prefix) $(OBJS_DIR_SHARED) + $(CC) -fPIC -Ivendor/ $(CFLAGS) -DSQLITE_CORE -DSQLITE_VEC_STATIC \ + -c $< -o $(OBJS_DIR_SHARED)/vec.o + $(CC) -shared $(LDFLAGS) -o $@ $(OBJS_DIR_SHARED)/vec.o + $(TARGET_STATIC_H): sqlite-vec.h $(prefix) cp $< $@ $(OBJS_DIR)/sqlite3.o: vendor/sqlite3.c $(OBJS_DIR) - $(CC) -c -g3 -O3 -DSQLITE_EXTRA_INIT=core_init -DSQLITE_CORE -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -I./vendor $< -o $@ + $(CC) $(CFLAGS) -c -g3 -DSQLITE_EXTRA_INIT=core_init -DSQLITE_CORE -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS -I./vendor $< -o $@ $(LIBS_DIR)/sqlite3.a: $(OBJS_DIR)/sqlite3.o $(LIBS_DIR) $(AR) rcs $@ $< @@ -113,7 +124,7 @@ $(OBJS_DIR)/shell.o: $(BUILD_DIR)/shell-new.c $(OBJS_D sed 's/\/\*extra-version-info\*\//EXTRA_TODO/g' $< > $@ $(OBJS_DIR)/shell.o: $(BUILD_DIR)/shell-new.c $(OBJS_DIR) - $(CC) -c -g3 -O3 \ + $(CC) $(CFLAGS) -c \ -I./vendor \ -DSQLITE_ENABLE_STMT_SCANSTATUS -DSQLITE_ENABLE_BYTECODE_VTAB -DSQLITE_ENABLE_EXPLAIN_COMMENTS \ -DEXTRA_TODO="\"CUSTOMBUILD:sqlite-vec\n\"" \