changeset 43:95d5ae53d170

Flavorize the support for the major databases MySQL and PostgreSQL. SQLite and/or Redis are OPTIONs -- as before. They are built into by default. Also provide a FLAVOR "alldb" to include all the major databases.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 17 Mar 2025 15:26:04 +0100
parents 986f63aa4bdd
children a4a312be008d
files Makefile
diffstat 1 files changed, 26 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/Makefile	Mon Mar 17 14:48:03 2025 +0100
+++ b/Makefile	Mon Mar 17 15:26:04 2025 +0100
@@ -15,6 +15,9 @@
 
 LIB_DEPENDS=	libevent.so:devel/libevent
 
+FLAVORS=	default mysql pgsql alldb
+FLAVOR?=	${FLAVORS:[1]}
+
 USES=		perl5 pkgconfig shebangfix ssl
 SHEBANG_FILES=	examples/scripts/restapi/shared_secret_maintainer.pl examples/scripts/oauth.sh
 HAS_CONFIGURE=	yes
@@ -32,6 +35,28 @@
 
 CONFLICTS_INSTALL=	turnserver coturn
 
+default_PKGNAMESUFFIX=
+default_CONFLICTS_INSTALL=	${PKGNAMEPREFIX}${PORTNAME}-mysql ${PKGNAMEPREFIX}${PORTNAME}-pgsql ${PKGNAMEPREFIX}${PORTNAME}-alldb
+
+alldb_PKGNAMESUFFIX=		-alldb
+alldb_CONFLICTS_INSTALL=	${PKGNAMEPREFIX}${PORTNAME} ${PKGNAMEPREFIX}${PORTNAME}-mysql ${PKGNAMEPREFIX}${PORTNAME}-pgsql
+
+mysql_PKGNAMESUFFIX=		-mysql
+mysql_CONFLICTS_INSTALL=	${PKGNAMEPREFIX}${PORTNAME} ${PKGNAMEPREFIX}${PORTNAME}-pgsql ${PKGNAMEPREFIX}${PORTNAME}-alldb
+.if ${FLAVOR} == mysql || ${FLAVOR} == alldb
+USES+=		mysql
+.else
+CONFIGURE_ENV+=	TURN_NO_MYSQL=1
+.endif
+
+pgsql_PKGNAMESUFFIX=		-pgsql
+pgsql_CONFLICTS_INSTALL=	${PKGNAMEPREFIX}${PORTNAME} ${PKGNAMEPREFIX}${PORTNAME}-mysql ${PKGNAMEPREFIX}${PORTNAME}-alldb
+.if ${FLAVOR} == pgsql || ${FLAVOR} == alldb
+USES+=		pgsql
+.else
+CONFIGURE_ENV+=	TURN_NO_PQ=1
+.endif
+
 MANPAGES=	turnserver.1 turnadmin.1 turnutils.1 turnutils_peer.1 \
 		turnutils_stunclient.1 turnutils_uclient.1 coturn.1 \
 		turnutils_oauth.1 turnutils_natdiscovery.1
@@ -82,16 +107,10 @@
 	mobile/mobile_tls_client_c2c_tcp_relay.sh \
 	mobile/mobile_udp_client.sh
 
-OPTIONS_DEFINE=	DOCS EXAMPLES MYSQL PGSQL REDIS SQLITE PROMETHEUS
+OPTIONS_DEFINE=	DOCS EXAMPLES REDIS SQLITE PROMETHEUS
 OPTIONS_DEFAULT=	REDIS SQLITE
 OPTIONS_SUB=	yes
 
-MYSQL_USES=	mysql
-MYSQL_CONFIGURE_ENV_OFF=	TURN_NO_MYSQL=1
-
-PGSQL_USES=	pgsql
-PGSQL_CONFIGURE_ENV_OFF=	TURN_NO_PQ=1
-
 REDIS_DESC=	Redis support for user database and for status and statistics reporting
 REDIS_LIB_DEPENDS=	libhiredis.so:databases/hiredis
 REDIS_CONFIGURE_ENV_OFF=	TURN_NO_HIREDIS=1