From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Mon, 13 May 2024 12:38:46 +0200 Received: from metis.whiteo.stw.pengutronix.de ([2a0a:edc0:2:b01:1d::104]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1s6T4w-00CToK-1m for lore@lore.pengutronix.de; Mon, 13 May 2024 12:38:46 +0200 Received: from localhost ([127.0.0.1] helo=metis.whiteo.stw.pengutronix.de) by metis.whiteo.stw.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1s6T4v-0003Oj-QA; Mon, 13 May 2024 12:38:45 +0200 Received: from smtp125.ord1d.emailsrvr.com ([184.106.54.125]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1s6T4X-00037t-8m for ptxdist@pengutronix.de; Mon, 13 May 2024 12:38:23 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=mev.co.uk; s=20221208-6x11dpa4; t=1715596700; bh=v4qe/m/TvpQipKYmEeiFnN6qoXpA8JJtR3Re5LuoJZI=; h=From:To:Subject:Date:From; b=oJVU1Juybpm+hNizjBvpxyjTOXbzItV2PGTPDZyp0ec1zplGzzcjqWkCZxmjVOpJf PrbLXNfyMKqJcJR/fUZVniKwzkLVSn0Uz1jQmLQxKqkUKZa98618eviVug8eRE2nk6 Asarx5bjR0Lb7r6mV/bDcVnqo1MsvOd7XzbqghCU= X-Auth-ID: abbotti@mev.co.uk Received: by smtp8.relay.ord1d.emailsrvr.com (Authenticated sender: abbotti-AT-mev.co.uk) with ESMTPSA id A9124C01B0; Mon, 13 May 2024 06:38:19 -0400 (EDT) From: Ian Abbott To: ptxdist@pengutronix.de Date: Mon, 13 May 2024 11:36:58 +0100 Message-ID: <20240513103808.21385-2-abbotti@mev.co.uk> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20240513103808.21385-1-abbotti@mev.co.uk> References: <20240510090419.4399-1-abbotti@mev.co.uk> <20240513103808.21385-1-abbotti@mev.co.uk> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Classification-ID: fe2cc75d-c306-4fa8-994a-7e46eea7cc50-2-1 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on metis.whiteo.stw.pengutronix.de X-Spam-Level: X-Spam-Status: No, score=-3.2 required=4.0 tests=AWL,BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 Subject: [ptxdist] [PATCH v2 1/2] libwebsockets: new package X-BeenThere: ptxdist@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Cc: Ian Abbott Sender: "ptxdist" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: ptxdist-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false 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 --- v2: Get sources from github instead of libwebsockets.org's own git server due to unreliable, on-the-fly generated tarballs from the latter. --- 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..9203b308d --- /dev/null +++ b/rules/libwebsockets.make @@ -0,0 +1,85 @@ +# -*-makefile-*- +# +# Copyright (C) 2024 by Ian Abbott +# +# 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 := c078b08b712316f6302f54a9d05273ae +LIBWEBSOCKETS := libwebsockets-$(LIBWEBSOCKETS_VERSION) +LIBWEBSOCKETS_SUFFIX := tar.gz +LIBWEBSOCKETS_URL := https://github.com/warmcat/libwebsockets/archive/refs/tags/v$(LIBWEBSOCKETS_VERSION).$(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 ") + @$(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