mirror of
https://github.com/pgvector/pgvector.git
synced 2026-06-06 05:51:21 +08:00
Added experimental support for Windows (including auto-vectorization) - closes #49
This commit is contained in:
65
Makefile.win
Normal file
65
Makefile.win
Normal file
@@ -0,0 +1,65 @@
|
||||
EXTENSION = vector
|
||||
EXTVERSION = 0.3.2
|
||||
|
||||
OBJS = src\ivfbuild.obj src\ivfflat.obj src\ivfinsert.obj src\ivfkmeans.obj src\ivfscan.obj src\ivfutils.obj src\ivfvacuum.obj src\vector.obj
|
||||
|
||||
# For /arch flags
|
||||
# https://learn.microsoft.com/en-us/cpp/build/reference/arch-minimum-cpu-architecture
|
||||
OPTFLAGS =
|
||||
|
||||
# For auto-vectorization:
|
||||
# - MSVC (needs /O2 /fp:fast) - https://learn.microsoft.com/en-us/cpp/parallel/auto-parallelization-and-auto-vectorization?#auto-vectorizer
|
||||
PG_CFLAGS = $(PG_CFLAGS) $(OPTFLAGS) /O2 /fp:fast
|
||||
|
||||
# Debug MSVC auto-vectorization
|
||||
# https://learn.microsoft.com/en-us/cpp/error-messages/tool-errors/vectorizer-and-parallelizer-messages
|
||||
# PG_CFLAGS = $(PG_CFLAGS) /Qvec-report:2
|
||||
|
||||
all: sql\$(EXTENSION)--$(EXTVERSION).sql
|
||||
|
||||
sql\$(EXTENSION)--$(EXTVERSION).sql: sql\$(EXTENSION).sql
|
||||
copy sql\$(EXTENSION).sql $@
|
||||
|
||||
# TODO use pg_config
|
||||
INCLUDEDIR = $(PGROOT)\include
|
||||
INCLUDEDIR_SERVER = $(PGROOT)\include\server
|
||||
LIBDIR = $(PGROOT)\lib
|
||||
PKGLIBDIR = $(PGROOT)\lib
|
||||
SHAREDIR = $(PGROOT)\share
|
||||
|
||||
CFLAGS = /nologo /I"$(INCLUDEDIR_SERVER)\port\win32_msvc" /I"$(INCLUDEDIR_SERVER)\port\win32" /I"$(INCLUDEDIR_SERVER)" /I"$(INCLUDEDIR)"
|
||||
|
||||
CFLAGS = $(CFLAGS) $(PG_CFLAGS)
|
||||
|
||||
SHLIB = src\$(EXTENSION).dll
|
||||
|
||||
LIBS = "$(LIBDIR)\postgres.lib"
|
||||
|
||||
.c.obj:
|
||||
$(CC) $(CFLAGS) /c $< /Fo$@
|
||||
|
||||
$(SHLIB): $(OBJS)
|
||||
$(CC) $(CFLAGS) $(OBJS) $(LIBS) /link /DLL /OUT:$(SHLIB)
|
||||
|
||||
all: $(SHLIB)
|
||||
|
||||
install:
|
||||
copy $(SHLIB) "$(PKGLIBDIR)"
|
||||
copy $(EXTENSION).control "$(SHAREDIR)\extension"
|
||||
copy sql\$(EXTENSION)--*.sql "$(SHAREDIR)\extension"
|
||||
|
||||
# TODO improve
|
||||
installcheck:
|
||||
createdb contrib_regression
|
||||
mkdir -p results
|
||||
psql -d contrib_regression -a -q -f test\sql\btree.sql > results\btree.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\cast.sql > results\cast.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\copy.sql > results\copy.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\functions.sql > results\functions.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\input.sql > results\input.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\ivfflat_cosine.sql > results\ivfflat_cosine.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\ivfflat_ip.sql > results\ivfflat_ip.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\ivfflat_l2.sql > results\ivfflat_l2.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\ivfflat_options.sql > results\ivfflat_options.out 2>&1
|
||||
psql -d contrib_regression -a -q -f test\sql\ivfflat_unlogged.sql > results\ivfflat_unlogged.out 2>&1
|
||||
cat results/*
|
||||
Reference in New Issue
Block a user