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_MAINTAINER
:=Michele Primavera
<primavera@elmod.it
>
25 define Package
/libopen62541
/config
26 source
"$(SOURCE)/Config.in"
29 include $(INCLUDE_DIR
)/package.mk
30 include $(INCLUDE_DIR
)/cmake.mk
32 ifeq ($(CONFIG_HAS_MIPS16
),y
)
33 TARGET_CFLAGS
+= -fstack-check
=generic
36 define Package
/libopen62541
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
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.
55 -DBUILD_SHARED_LIBS
=ON \
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
)
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
91 CMAKE_OPTIONS
+= -DUA_ENABLE_ENCRYPTION
=OFF
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
99 CMAKE_OPTIONS
+= -DUA_NAMESPACE_ZERO
=FULL
102 define Package
/libopen62541
/install
103 $(INSTALL_DIR
) $(1)/usr
/lib
104 $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/lib
/libopen62541.so
* $(1)/usr
/lib
/
107 $(eval
$(call BuildPackage
,libopen62541
))