summaryrefslogtreecommitdiff
path: root/devel/kore/Makefile
blob: 83360cfb20486914ec0bda70c63a6c2c1449c306 (plain)
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
90
# Created by: Tobias Kortkamp <t@tobik.me>
# $FreeBSD$

PORTNAME=	kore
PORTVERSION=	3.3.1
CATEGORIES=	devel www
MASTER_SITES=	https://kore.io/releases/

MAINTAINER=	tobik@FreeBSD.org
COMMENT=	Web application framework for writing web APIs in C

LICENSE=	ISCL
LICENSE_FILE=	${WRKSRC}/LICENSE

FLAVORS=	default notls
notls_PKGNAMESUFFIX=	-notls

USES=		compiler:c11 gmake ssl

CFLAGS+=	${CFLAGS_${CHOSEN_COMPILER_TYPE}} -I${OPENSSLINC}
CFLAGS_clang=	-Wno-error=c11-extensions # 12.0 + -pedantic
LDFLAGS+=	-L${OPENSSLLIB}

DATADIR=	${PREFIX}/share/kore${PKGNAMESUFFIX}
EXAMPLESDIR=	${PREFIX}/share/examples/kore${PKGNAMESUFFIX}
PLIST_SUB=	SUFFIX=${PKGNAMESUFFIX}

OPTIONS_DEFINE=		CURL DEBUG EXAMPLES HTTP JSONRPC PGSQL PYTHON TASKS TLS
OPTIONS_DEFAULT=	CURL HTTP JSONRPC PGSQL PYTHON TASKS TLS
.if ${FLAVOR:U} == notls
OPTIONS_EXCLUDE=	TLS
.endif
OPTIONS_SUB=	yes

HTTP_DESC=	Build with HTTP support
JSONRPC_DESC=	Build with JSON-RPC support
TASKS_DESC=	Build with tasks support

CURL_LIB_DEPENDS=	libcurl.so:ftp/curl
CURL_MAKE_ARGS=		CURL=1

DEBUG_MAKE_ARGS=	DEBUG=1

PORTEXAMPLES=		*

JSONRPC_IMPLIES=	HTTP
JSONRPC_LIB_DEPENDS=	libyajl.so:devel/yajl
JSONRPC_MAKE_ARGS=	JSONRPC=1

HTTP_MAKE_ARGS_OFF=	NOHTTP=1

PGSQL_IMPLIES=		HTTP
PGSQL_MAKE_ARGS=	PGSQL=1
PGSQL_USES=		pgsql

PYTHON_BINARY_ALIAS=	python3-config=${PYTHON_CMD}-config
PYTHON_MAKE_ARGS=	PYTHON=1
PYTHON_USES=		gettext-runtime python:3.6+

TASKS_MAKE_ARGS=	TASKS=1

TLS_MAKE_ARGS_OFF=	NOTLS=1

post-patch:
# Disable kore's own optimizations flags, make sure the correct paths
# are set when LOCALBASE is not /usr/local
	@${REINPLACE_CMD} -e 's|CFLAGS+=-O|#|g' \
		-e 's|/usr/local/|${LOCALBASE}/|g' \
		${WRKSRC}/Makefile
	@${REINPLACE_CMD} -e 's|%%SUFFIX%%|${PKGNAMESUFFIX}|g' \
		-e 's|%%OPENSSLINC%%|${OPENSSLINC}|g' \
		${WRKSRC}/src/cli.c ${WRKSRC}/src/utils.c

do-install:
	${INSTALL_PROGRAM} ${WRKSRC}/kore ${STAGEDIR}${PREFIX}/bin/kore${PKGNAMESUFFIX}
	${INSTALL_PROGRAM} ${WRKSRC}/kodev/kodev ${STAGEDIR}${PREFIX}/bin/kodev${PKGNAMESUFFIX}
	@${MKDIR} ${STAGEDIR}${DATADIR}
	${INSTALL_DATA} ${WRKSRC}/kore.features ${STAGEDIR}${DATADIR}/features
	@${MKDIR} ${STAGEDIR}${PREFIX}/include/kore${PKGNAMESUFFIX}
	@cd ${WRKSRC}/include && ${COPYTREE_SHARE} . \
		${STAGEDIR}${PREFIX}/include/kore${PKGNAMESUFFIX}
	@${MKDIR} ${STAGEDIR}${PREFIX}/man/man1
	${INSTALL_DATA} ${WRKSRC}/share/man/kodev.1 \
		${STAGEDIR}${PREFIX}/man/man1/kodev${PKGNAMESUFFIX}.1

do-install-EXAMPLES-on:
	@cd ${WRKSRC}/examples && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}
	@cd ${WRKSRC}/conf && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}

.include <bsd.port.mk>