1################################################################################
2#
3# libwebsockets
4#
5################################################################################
6
7LIBWEBSOCKETS_VERSION = 4.3.3
8LIBWEBSOCKETS_SITE = $(call github,warmcat,libwebsockets,v$(LIBWEBSOCKETS_VERSION))
9LIBWEBSOCKETS_LICENSE = MIT with exceptions
10LIBWEBSOCKETS_LICENSE_FILES = LICENSE
11LIBWEBSOCKETS_DEPENDENCIES = zlib
12LIBWEBSOCKETS_INSTALL_STAGING = YES
13LIBWEBSOCKETS_CONF_OPTS = \
14	-DDISABLE_WERROR=ON \
15	-DLWS_WITHOUT_TESTAPPS=ON \
16	-DLWS_IPV6=ON \
17	-DLWS_UNIX_SOCK=ON \
18	-DLWS_WITHOUT_EXTENSIONS=OFF
19
20# If LWS_MAX_SMP=1, then there is no code related to pthreads compiled
21# in the library. If unset, LWS_MAX_SMP defaults to 32 and a small
22# amount of pthread mutex code is built into the library.
23ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
24LIBWEBSOCKETS_CONF_OPTS += \
25	-DLWS_MAX_SMP=1 \
26	-DLWS_WITH_SYS_SMD=OFF
27else
28LIBWEBSOCKETS_CONF_OPTS += \
29	-DLWS_MAX_SMP= \
30	-DLWS_WITH_SYS_SMD=ON
31endif
32
33ifeq ($(BR2_PACKAGE_OPENSSL),y)
34LIBWEBSOCKETS_DEPENDENCIES += openssl host-openssl
35LIBWEBSOCKETS_CONF_OPTS += \
36	-DLWS_WITH_SSL=ON \
37	-DLWS_WITH_MBEDTLS=OFF \
38	-DLWS_WITH_WOLFSSL=OFF
39else ifeq ($(BR2_PACKAGE_MBEDTLS),y)
40LIBWEBSOCKETS_DEPENDENCIES += mbedtls
41LIBWEBSOCKETS_CONF_OPTS += \
42	-DLWS_WITH_SSL=ON \
43	-DLWS_WITH_MBEDTLS=ON \
44	-DLWS_WITH_WOLFSSL=OFF
45else ifeq ($(BR2_PACKAGE_WOLFSSL_ALL),y)
46LIBWEBSOCKETS_DEPENDENCIES += host-pkgconf wolfssl
47LIBWEBSOCKETS_CONF_OPTS += \
48	-DLWS_WITH_SSL=ON \
49	-DLWS_WITH_MBEDTLS=OFF \
50	-DLWS_WITH_WOLFSSL=ON
51else
52LIBWEBSOCKETS_CONF_OPTS += \
53	-DLWS_WITH_SSL=OFF \
54	-DLWS_WITH_MBEDTLS=OFF \
55	-DLWS_WITH_WOLFSSL=OFF
56endif
57
58ifeq ($(BR2_PACKAGE_LIBEV),y)
59LIBWEBSOCKETS_DEPENDENCIES += libev
60LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=ON
61else
62LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEV=OFF
63endif
64
65ifeq ($(BR2_PACKAGE_LIBEVENT),y)
66LIBWEBSOCKETS_DEPENDENCIES += libevent
67LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEVENT=ON
68else
69LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBEVENT=OFF
70endif
71
72ifeq ($(BR2_PACKAGE_LIBGLIB2),y)
73LIBWEBSOCKETS_DEPENDENCIES += libglib2
74LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=ON
75else
76LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_GLIB=OFF
77endif
78
79ifeq ($(BR2_PACKAGE_UTIL_LINUX_LIBMOUNT),y)
80LIBWEBSOCKETS_DEPENDENCIES += util-linux
81LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=ON
82else
83LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_FSMOUNT=OFF
84endif
85
86ifeq ($(BR2_PACKAGE_LIBUV),y)
87LIBWEBSOCKETS_DEPENDENCIES += libuv
88LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=ON
89else
90LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_LIBUV=OFF
91endif
92
93ifeq ($(BR2_SHARED_LIBS),y)
94LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_STATIC=OFF
95endif
96
97ifeq ($(BR2_PACKAGE_LIBWEBSOCKETS_EXT_POLL),y)
98LIBWEBSOCKETS_CONF_OPTS += -DLWS_WITH_EXTERNAL_POLL=ON
99endif
100
101$(eval $(cmake-package))
102