aboutsummaryrefslogtreecommitdiff
path: root/net/libwebsockets/Makefile
blob: 3ca23e689d61581941fc8cd57f8408fc986e5aff (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
# Created by: Iblis Lin <iblis@hs.ntnu.edu.tw>

PORTNAME=	libwebsockets
DISTVERSIONPREFIX=	v
DISTVERSION=	4.1.6
CATEGORIES=	net devel
MASTER_SITES=	https://libwebsockets.org/git/libwebsockets/snapshot/

MAINTAINER=	iblis@hs.ntnu.edu.tw
COMMENT=	C library for lightweight websocket clients and servers

LICENSE=	MIT
LICENSE_FILE=	${WRKSRC}/LICENSE

USES=		cmake localbase pkgconfig tar:xz
USE_LDCONFIG=	yes

CMAKE_ON=	LWS_IPV6 LWS_WITH_SSL LWS_WITH_ZLIB \
		LWS_WITHOUT_TESTAPPS LWS_WITHOUT_TEST_SERVER \
		LWS_WITHOUT_TEST_SERVER_EXTPOLL \
		LWS_WITHOUT_TEST_PING LWS_WITHOUT_TEST_CLIENT

OPTIONS_DEFINE=		HTTP_PROXY HTTP2 MQTT PEERLIMITS PLUGINS \
			SECURE_STREAMS SOCKS SQLITE WEBSERVER
OPTIONS_DEFAULT=	HTTP2 OPENSSL LIBUV
OPTIONS_SUB=		yes

OPTIONS_SINGLE=		SSL
OPTIONS_SINGLE_SSL=	MBEDTLS OPENSSL
OPTIONS_GROUP=		EVLOOP
OPTIONS_GROUP_EVLOOP=	GLIB LIBEV LIBEVENT LIBUV

HTTP_PROXY_DESC=	HTTP proxy support
MQTT_DESC=		MQTT client support
PEERLIMITS_DESC=	Tracking and limiting of resources of peer(s)
PLUGINS_DESC=		Plugins support
SECURE_STREAMS_DESC=	Secure streams protocol API support
SOCKS_DESC=		Allow use of SOCKS5 proxy on client connections
EVLOOP_DESC=		Event loop support
GLIB_DESC=		Events support via Glib
LIBEVENT_DESC=		Asynchronous event notification via libevent
LIBUV_DESC=		Asynchronous I/O support via libuv

HTTP_PROXY_CMAKE_BOOL=	LWS_WITH_HTTP_PROXY
HTTP2_CMAKE_BOOL=	LWS_WITH_HTTP2
MQTT_CMAKE_BOOL=	LWS_ROLE_MQTT
PEERLIMITS_CMAKE_BOOL=	LWS_WITH_PEER_LIMITS
PLUGINS_CMAKE_BOOL=	LWS_WITH_PLUGINS \
			LWS_WITH_PLUGINS_API
SECURE_STREAMS_CMAKE_BOOL=	LWS_WITH_SECURE_STREAMS \
			LWS_WITH_SECURE_STREAMS_PROXY_API
SOCKS_CMAKE_BOOL=	LWS_WITH_SOCKS5
SQLITE_LIB_DEPENDS=	libsqlite3.so:databases/sqlite3
SQLITE_CMAKE_BOOL=	LWS_WITH_SQLITE3
WEBSERVER_CMAKE_BOOL=	LWS_WITH_LWSWS
WEBSERVER_IMPLIES=	PEERLIMITS PLUGINS LIBUV

MBEDTLS_LIB_DEPENDS=	libmbedtls.so:security/mbedtls
MBEDTLS_CMAKE_BOOL=	LWS_WITH_MBEDTLS
OPENSSL_USES=		ssl
OPENSSL_CMAKE_BOOL=	LWS_WITHOUT_BUILTIN_SHA1
# WolfSSL need to be compiled with --enable-libwebsockets to be compatible
# WOLFSSL_LIB_DEPENDS=	libwolfssl.so:security/wolfssl
# WOLFSSL_CMAKE_BOOL=	LWS_WITH_SSL LWS_WITH_WOLFSSL
# WOLFSSL_CMAKE_ON=	-DLWS_WOLFSSL_INCLUDE_DIRS=${LOCALBASE}/include \
#			-DLWS_WOLFSSL_LIBRARIES=${LOCALBASE}/lib/libwolfssl.so

GLIB_USES=		gnome
GLIB_USE=		GNOME=glib20
GLIB_CMAKE_BOOL=	LWS_WITH_GLIB
LIBEV_LIB_DEPENDS=	libev.so:devel/libev
LIBEV_CMAKE_BOOL=	LWS_WITH_LIBEV
LIBEVENT_LIB_DEPENDS=	libevent.so:devel/libevent
LIBEVENT_CMAKE_BOOL=	LWS_WITH_LIBEVENT
LIBUV_LIB_DEPENDS=	libuv.so:devel/libuv
LIBUV_CMAKE_BOOL=	LWS_WITH_LIBUV

.include <bsd.port.mk>