aboutsummaryrefslogtreecommitdiff
path: root/databases/keydb/Makefile
blob: d70c0f33afb01bdd72a46ded4a8dfaab621f3847 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
PORTNAME=	keydb
DISTVERSIONPREFIX=	v
DISTVERSION=	6.3.4
CATEGORIES=	databases

MAINTAINER=	zi@FreeBSD.org
COMMENT=	High performance fork of Redis--a persistent key-value database
WWW=		https://docs.keydb.dev/

LICENSE=	BSD3CLAUSE
LICENSE_FILE=	${WRKSRC}/COPYING

LIB_DEPENDS=	libuuid.so:misc/e2fsprogs-libuuid \
		liblz4.so:archivers/liblz4 \
		libsnappy.so:archivers/snappy \
		libzstd.so:archivers/zstd

USES=		compiler:c11 cpe gmake localbase:ldflags pkgconfig:build

USE_GITHUB=	yes
GH_ACCOUNT=	Snapchat
GH_PROJECT=	KeyDB
USE_RC_SUBR=	keydb keydb_sentinel

MAKE_ENV=	OPTIMIZATION= \
		V=yo

LDFLAGS+=	-lpthread -lm -lexecinfo

SUB_FILES=	pkg-message
SUB_LIST=	PORTNAME=${PORTNAME} \
		KEYDB_DBDIR=${KEYDB_DBDIR} \
		KEYDB_LOGDIR=${KEYDB_LOGDIR} \
		KEYDB_RUNDIR=${KEYDB_RUNDIR} \
		KEYDB_USER=${USERS}

USERS=		keydb
GROUPS=		keydb

PLIST_SUB=	KEYDB_DBDIR=${KEYDB_DBDIR} \
		KEYDB_GROUP=${GROUPS} \
		KEYDB_LOGDIR=${KEYDB_LOGDIR} \
		KEYDB_RUNDIR=${KEYDB_RUNDIR} \
		KEYDB_USER=${USERS}

OPTIONS_DEFINE=	TLS
OPTIONS_DEFAULT=TLS

TLS_DESC=	Use TLS (openssl req.)

TLS_USES=	ssl
TLS_MAKE_ENV=	BUILD_TLS=yes

BIN_FILES=	keydb-benchmark keydb-check-aof keydb-check-rdb keydb-cli \
		keydb-sentinel keydb-server

KEYDB_DBDIR?=	/var/db/keydb
KEYDB_RUNDIR?=	/var/run/keydb
KEYDB_LOGDIR?=	/var/log/keydb

.include <bsd.port.pre.mk>

.if ${ARCH} == i386 && !${CFLAGS:M-march=*}
# Needed for __atomic_fetch_add_8
USE_GCC=	yes
CFLAGS+=	-march=i586
.endif

.if defined(_ADDFLAGS)
CFLAGS+=	-fPIC
LDFLAGS+=	-Wl,-E
.endif

post-patch:
	${REINPLACE_CMD} 's|/usr/local|${PREFIX}|g' ${WRKSRC}/src/Makefile

post-build:
	${SED} ${SUB_LIST:S/$/!g/:S/^/ -e s!%%/:S/=/%%!/} \
		${WRKSRC}/keydb.conf > ${WRKDIR}/keydb.conf

do-install:
	${INSTALL_PROGRAM} ${BIN_FILES:C!^!${WRKSRC}/src/!} ${STAGEDIR}${PREFIX}/bin/
	${INSTALL_DATA} ${WRKDIR}/keydb.conf ${STAGEDIR}${PREFIX}/etc/keydb.conf.sample
	${INSTALL_DATA} ${WRKSRC}/sentinel.conf ${STAGEDIR}${PREFIX}/etc/keydb_sentinel.conf.sample
	${MKDIR} ${STAGEDIR}${KEYDB_LOGDIR} \
		${STAGEDIR}${KEYDB_DBDIR} \
		${STAGEDIR}${KEYDB_RUNDIR}

.include <bsd.port.post.mk>