summaryrefslogtreecommitdiff
path: root/databases/keydb/files/patch-src-Makefile
diff options
context:
space:
mode:
authorRyan Steinmetz <zi@FreeBSD.org>2023-10-25 14:16:34 -0400
committerRyan Steinmetz <zi@FreeBSD.org>2023-10-25 14:16:34 -0400
commit11f4c366bf393632b33cf681b1ccb3cc1490d9c4 (patch)
treebd2e5e12214c99982aa85f0b1bfa831807ea139d /databases/keydb/files/patch-src-Makefile
parentdevel/ispc: Fix typo in cmake variable name (diff)
databases/keydb: New port!
KeyDB is a high performance fork of Redis with a focus on multithreading, memory efficiency, and high throughput. In addition to performance improvements, KeyDB offers features such as Active Replication, FLASH Storage and Subkey Expires. KeyDB has a MVCC architecture that allows you to execute queries such as KEYS and SCAN without blocking the database and degrading performance. KeyDB maintains full compatibility with the Redis protocol, modules, and scripts. This includes the atomicity guarantees for scripts and transactions. Because KeyDB keeps in sync with Redis development KeyDB is a superset of Redis functionality, making KeyDB a drop in replacement for existing Redis deployments. On the same hardware KeyDB can achieve significantly higher throughput than Redis. Active-Replication simplifies hot-spare failover allowing you to easily distribute writes over replicas and use simple TCP based load balancing/failover. KeyDB's higher performance allows you to do more on less hardware which reduces operation costs and complexity. WWW: https://docs.keydb.dev/
Diffstat (limited to 'databases/keydb/files/patch-src-Makefile')
-rw-r--r--databases/keydb/files/patch-src-Makefile52
1 files changed, 52 insertions, 0 deletions
diff --git a/databases/keydb/files/patch-src-Makefile b/databases/keydb/files/patch-src-Makefile
new file mode 100644
index 000000000000..4703d6eb6daf
--- /dev/null
+++ b/databases/keydb/files/patch-src-Makefile
@@ -0,0 +1,52 @@
+--- src/Makefile.orig 2023-10-25 15:47:51 UTC
++++ src/Makefile
+@@ -138,21 +138,11 @@ endif
+ # Override default settings if possible
+ -include .make-settings
+
+-DEBUG=-g -ggdb
+ FINAL_CFLAGS=$(STD) $(WARN) $(OPT) $(DEBUG) $(CFLAGS) $(KEYDB_CFLAGS) $(REDIS_CFLAGS)
+ FINAL_CXXFLAGS=$(CXX_STD) $(WARN) $(OPT) $(DEBUG) $(CXXFLAGS) $(KEYDB_CFLAGS) $(REDIS_CFLAGS)
+ FINAL_LDFLAGS=$(LDFLAGS) $(KEYDB_LDFLAGS) $(DEBUG)
+ FINAL_LIBS+=-lm -lz -lcrypto -lbz2 -lzstd -llz4 -lsnappy
+
+-ifneq ($(uname_S),Darwin)
+- FINAL_LIBS+=-latomic
+-endif
+-# Linux ARM32 needs -latomic at linking time
+-ifneq (,$(findstring armv,$(uname_M)))
+- FINAL_LIBS+=-latomic
+-endif
+-
+-
+ ifeq ($(uname_S),SunOS)
+ # SunOS
+ ifeq ($(findstring -m32,$(FINAL_CFLAGS)),)
+@@ -211,7 +201,9 @@ ifeq ($(uname_S),NetBSD)
+ else
+ ifeq ($(uname_S),FreeBSD)
+ # FreeBSD
+- FINAL_LIBS+= -lpthread -lexecinfo
++ FINAL_LIBS+= -lpthread -lexecinfo -luuid
++ FINAL_CFLAGS?= $(CFLAGS) $(REDIS_CFLAGS) -I${PREFIX}/include
++ FINAL_LDFLAGS= $(LDFLAGS) -pthread
+ else
+ ifeq ($(uname_S),DragonFly)
+ # DragonFly
+@@ -347,7 +339,7 @@ else
+ endif
+
+ # Alpine OS doesn't have support for the execinfo backtrace library we use for debug, so we provide an alternate implementation using libwunwind.
+-OS := $(shell cat /etc/os-release | grep ID= | head -n 1 | cut -d'=' -f2)
++OS := $(shell uname -r)
+ ifeq ($(OS),alpine)
+ FINAL_CXXFLAGS+=-DUNW_LOCAL_ONLY -DALPINE
+ FINAL_LIBS += -lunwind
+@@ -417,7 +409,6 @@ persist-settings: distclean
+ echo PREV_FINAL_CFLAGS=$(FINAL_CFLAGS) >> .make-settings
+ echo PREV_FINAL_CXXFLAGS=$(FINAL_CXXFLAGS) >> .make-settings
+ echo PREV_FINAL_LDFLAGS=$(FINAL_LDFLAGS) >> .make-settings
+- -(cd modules && $(MAKE))
+ -(cd ../deps && $(MAKE) $(DEPENDENCY_TARGETS))
+
+ .PHONY: persist-settings