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