Includes the C library from the Libwebsockets (LWS) project, with options for adding TLS (SSL) support, and options the adding various event loop libraries that are dynamically loaded as plug-ins.
Signed-off-by: Ian Abbott <[email protected]> --- rules/libwebsockets.in | 56 ++++++++++++++++++++++++++ rules/libwebsockets.make | 85 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 141 insertions(+) create mode 100644 rules/libwebsockets.in create mode 100644 rules/libwebsockets.make diff --git a/rules/libwebsockets.in b/rules/libwebsockets.in new file mode 100644 index 000000000..e10413604 --- /dev/null +++ b/rules/libwebsockets.in @@ -0,0 +1,56 @@ +## SECTION=networking + +menuconfig LIBWEBSOCKETS + tristate + select HOST_CMAKE + select ZLIB + select LIBCAP + select OPENSSL if LIBWEBSOCKETS_TLS + select LIBEV if LIBWEBSOCKETS_LIBEV + select LIBUV if LIBWEBSOCKETS_LIBUV + select LIBEVENT if LIBWEBSOCKETS_LIBEVENT + select GLIB if LIBWEBSOCKETS_GLIB + prompt "libwebsockets " + help + Libwebsockets is a lightweight pure C library for both + websockets clients and servers built to use minimal CPU + and memory resources and provide fast throughput in both + directions. + +if LIBWEBSOCKETS + +config LIBWEBSOCKETS_TLS + bool + prompt "TLS (SSL) support" + help + Turn on to include TLS (SSL) support. + +menuconfig LIBWEBSOCKETS_EVLIB + bool + prompt "Event library options " + help + Turn on to enable various event library plug-ins. + +if LIBWEBSOCKETS_EVLIB + +config LIBWEBSOCKETS_LIBEV + bool + prompt "compile with support for libev" + +config LIBWEBSOCKETS_LIBUV + bool + prompt "compile with support for libuv" + +config LIBWEBSOCKETS_LIBEVENT + bool + prompt "compile with support for libevent" + +config LIBWEBSOCKETS_GLIB + bool + prompt "compile with support for glib event loop" + +endif + +endif + +# vim: ft=kconfig noet tw=72 diff --git a/rules/libwebsockets.make b/rules/libwebsockets.make new file mode 100644 index 000000000..4e22e9c18 --- /dev/null +++ b/rules/libwebsockets.make @@ -0,0 +1,85 @@ +# -*-makefile-*- +# +# Copyright (C) 2024 by Ian Abbott <[email protected]> +# +# For further information about the PTXdist project and license conditions +# see the README file. +# + +# +# We provide this package +# +PACKAGES-$(PTXCONF_LIBWEBSOCKETS) += libwebsockets + +# +# Paths and names +# +LIBWEBSOCKETS_VERSION := 4.3.3 +LIBWEBSOCKETS_MD5 := 877f457d059718a7eafdaf8db5d7abbb +LIBWEBSOCKETS := libwebsockets-v$(LIBWEBSOCKETS_VERSION) +LIBWEBSOCKETS_SUFFIX := tar.bz2 +LIBWEBSOCKETS_URL := https://libwebsockets.org/git/libwebsockets/snapshot/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX) +LIBWEBSOCKETS_SOURCE := $(SRCDIR)/$(LIBWEBSOCKETS).$(LIBWEBSOCKETS_SUFFIX) +LIBWEBSOCKETS_DIR := $(BUILDDIR)/$(LIBWEBSOCKETS) +LIBWEBSOCKETS_LICENSE := MIT AND BSD-2-Clause AND BSD-3-Clause +LIBWEBSOCKETS_LICENSE_FILES := file://LICENSE;md5=382bfdf329e774859fd401eaf850d29b + +# ---------------------------------------------------------------------------- +# Prepare +# ---------------------------------------------------------------------------- + +# +# cmake +# +LIBWEBSOCKETS_CONF_TOOL := cmake +LIBWEBSOCKETS_CONF_OPT := \ + $(CROSS_CMAKE_USR) \ + -DLWS_WITHOUT_DAEMONIZE=OFF \ + -DLWS_WITH_ZLIB=ON \ + -DLWS_WITH_SSL=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_TLS) \ + -DLWS_WITH_LIBEV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEV) \ + -DLWS_WITH_LIBUV=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBUV) \ + -DLWS_WITH_LIBEVENT=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_LIBEVENT) \ + -DLWS_WITH_GLIB=$(call ptx/onoff, PTXCONF_LIBWEBSOCKETS_GLIB) \ + -DLWS_WITHOUT_TESTAPPS=ON \ + -DLWS_WITHOUT_TEST_PING=ON \ + -DLWS_WITHOUT_TEST_CLIENT=ON \ + -DLWS_WITHOUT_EXTENSIONS=OFF \ + -DLWS_WITH_EXTERNAL_POLL=ON \ + -DLWS_IPV6=$(call ptx/onoff, PTXCONF_GLOBAL_IPV6) + +# ---------------------------------------------------------------------------- +# Target-Install +# ---------------------------------------------------------------------------- + +$(STATEDIR)/libwebsockets.targetinstall: + @$(call targetinfo) + + @$(call install_init, libwebsockets) + @$(call install_fixup, libwebsockets,PRIORITY,optional) + @$(call install_fixup, libwebsockets,SECTION,base) + @$(call install_fixup, libwebsockets,AUTHOR,"Ian Abbott <[email protected]>") + @$(call install_fixup, libwebsockets,DESCRIPTION,missing) + +# libraries + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets) + +# plug-in libraries +ifdef PTXCONF_LIBWEBSOCKETS_LIBEV + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_ev) +endif +ifdef PTXCONF_LIBWEBSOCKETS_LIBUV + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_uv) +endif +ifdef PTXCONF_LIBWEBSOCKETS_LIBEVENT + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_event) +endif +ifdef PTXCONF_LIBWEBSOCKETS_GLIB + @$(call install_lib, libwebsockets, 0, 0, 0644, libwebsockets-evlib_glib) +endif + + @$(call install_finish, libwebsockets) + + @$(call touch) + +# vim: syntax=make -- 2.43.0
