gst1-plugins-base: update to 1.22.8
[feed/packages.git] / libs / libopen62541 / Makefile
1 #
2 # Copyright (C) 2023 Michele Primavera
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=libopen62541
11 PKG_VERSION:=1.3.6
12 PKG_RELEASE:=1
13
14 PKG_SOURCE_PROTO:=git
15 PKG_SOURCE_URL:=https://github.com/open62541/open62541.git
16 PKG_SOURCE_VERSION:=v$(PKG_VERSION)
17 PKG_MIRROR_HASH:=1587eba9e697591a342d91df02acb7460e74617895f810c006ad3d7e4bce21b8
18
19 PKG_LICENSE:=MPL-2.0
20 PKG_LICENSE_FILES:=LICENSE
21 PKG_MAINTAINER:=Michele Primavera <primavera@elmod.it>
22
23 CMAKE_INSTALL:=1
24
25 define Package/libopen62541/config
26 source "$(SOURCE)/Config.in"
27 endef
28
29 include $(INCLUDE_DIR)/package.mk
30 include $(INCLUDE_DIR)/cmake.mk
31
32 ifeq ($(CONFIG_HAS_MIPS16),y)
33 TARGET_CFLAGS += -fstack-check=generic
34 endif
35
36 define Package/libopen62541
37 SECTION:=libs
38 CATEGORY:=Libraries
39 TITLE:=An OPC UA library
40 URL:=https://open62541.org/
41 DEPENDS:=+librt +zlib +libstdcpp +libpthread +libatomic \
42 +LIBOPEN62541_MBDEDTLS:libmbedtls +LIBOPEN62541_OPENSSL:libopenssl
43 endef
44
45 define Package/libopen62541/description
46 open62541 (http://open62541.org) is an open source and free implementation of
47 OPC UA (OPC Unified Architecture) written in the common subset of the C99 and
48 C++98 languages. The library is usable with all major compilers and provides
49 the necessary tools to implement dedicated OPC UA clients and servers, or to
50 integrate OPC UA-based communication into existing applications. open62541
51 library is platform independent.
52 endef
53
54 CMAKE_OPTIONS += \
55 -DBUILD_SHARED_LIBS=ON \
56 -DUA_LOGLEVEL=500 \
57 -DUA_ENABLE_AMALGAMATION=OFF \
58 -DCMAKE_BUILD_TYPE=MinSizeRel \
59 -DUA_ARCHITECTURE=posix \
60 -DUA_BUILD_EXAMPLES=OFF \
61 -DUA_BUILD_TOOLS=OFF \
62 -DUA_BUILD_UNIT_TESTS=OFF \
63 -DOPEN62541_VERSION=v$(PKG_VERSION) \
64 -DUA_ENABLE_SUBSCRIPTIONS=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS),ON,OFF) \
65 -DUA_ENABLE_SUBSCRIPTIONS_EVENTS=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS_EVENTS),ON,OFF) \
66 -DUA_ENABLE_SUBSCRIPTIONS_ALARMS_CONDITIONS=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_SUBSCRIPTIONS_ALARMS_CONDITIONS),ON,OFF) \
67 -DUA_ENABLE_METHODCALLS=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_METHODCALLS),ON,OFF) \
68 -DUA_ENABLE_PARSING=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PARSING),ON,OFF) \
69 -DUA_ENABLE_NODEMANAGEMENT=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_NODEMANAGEMENT),ON,OFF) \
70 -DUA_ENABLE_IMMUTABLE_NODES=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_IMMUTABLE_NODES),ON,OFF) \
71 -DUA_ENABLE_DISCOVERY=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY),ON,OFF) \
72 -DUA_ENABLE_DISCOVERY_MULTICAST=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_MULTICAST),ON,OFF) \
73 -DUA_ENABLE_DISCOVERY_SEMAPHORE=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_DISCOVERY_SEMAPHORE),ON,OFF) \
74 -DUA_ENABLE_ENCRYPTION_TPM2=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_ENCRYPTION_TPM2),ON,OFF) \
75 -DUA_ENABLE_TYPEDESCRIPTION=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_TYPEDESCRIPTION),ON,OFF) \
76 -DUA_ENABLE_STATUSCODE_DESCRIPTIONS=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_STATUSCODE_DESCRIPTIONS),ON,OFF) \
77 -DUA_ENABLE_PUBSUB=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB),ON,OFF) \
78 -DUA_ENABLE_PUBSUB_DELTAFRAMES=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_DELTAFRAMES),ON,OFF) \
79 -DUA_ENABLE_PUBSUB_FILE_CONFIG=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_FILE_CONFIG),ON,OFF) \
80 -DUA_ENABLE_PUBSUB_INFORMATIONMODEL=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_INFORMATIONMODEL),ON,OFF) \
81 -DUA_ENABLE_PUBSUB_MONITORING=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_MONITORING),ON,OFF) \
82 -DUA_ENABLE_PUBSUB_ETH_UADP=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_ETH_UADP),ON,OFF) \
83 -DUA_ENABLE_PUBSUB_ENCRYPTION=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_PUBSUB_ENCRYPTION),ON,OFF) \
84 -DUA_ENABLE_HISTORIZING=$(if $(CONFIG_LIBOPEN62541_UA_ENABLE_HISTORIZING),ON,OFF)
85
86 ifeq ($(CONFIG_LIBOPEN62541_MBDEDTLS),y)
87 CMAKE_OPTIONS += -DUA_ENABLE_ENCRYPTION=MBEDTLS
88 else ifeq ($(CONFIG_LIBOPEN62541_OPENSSL),y)
89 CMAKE_OPTIONS += -DUA_ENABLE_ENCRYPTION=OPENSSL
90 else
91 CMAKE_OPTIONS += -DUA_ENABLE_ENCRYPTION=OFF
92 endif
93
94 ifeq ($(CONFIG_LIBOPEN62541_NAMESPACEZERO_REDUCED),y)
95 CMAKE_OPTIONS += -DUA_NAMESPACE_ZERO=REDUCED
96 else ifeq ($(CONFIG_LIBOPEN62541_NAMESPACEZERO_MINIMAL),y)
97 CMAKE_OPTIONS += -DUA_NAMESPACE_ZERO=MINIMAL
98 else
99 CMAKE_OPTIONS += -DUA_NAMESPACE_ZERO=FULL
100 endif
101
102 define Package/libopen62541/install
103 $(INSTALL_DIR) $(1)/usr/lib
104 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/lib/libopen62541.so* $(1)/usr/lib/
105 endef
106
107 $(eval $(call BuildPackage,libopen62541))