blob: e0a080d60e240d45e79bab7ba564e4dcf19b5e5b [file] [log] [blame]
b.liue9582032025-04-17 19:18:16 +08001#
2# Copyright (C) 2011-2015 OpenWrt.org
3#
4# This is free software, licensed under the GNU General Public License v2.
5# See /LICENSE for more information.
6#
7
8include $(TOPDIR)/rules.mk
9
10PKG_NAME:=libevent2
11PKG_VERSION:=2.1.12
12PKG_RELEASE:=2
13
14PKG_SOURCE:=libevent-$(PKG_VERSION)-stable.tar.gz
15PKG_SOURCE_URL:=https://github.com/libevent/libevent/releases/download/release-$(PKG_VERSION)-stable
16PKG_HASH:=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
17PKG_BUILD_DIR:=$(BUILD_DIR)/libevent-$(PKG_VERSION)-stable
18
19PKG_MAINTAINER:=Jo-Philipp Wich <jo@mein.io>
20PKG_LICENSE:=BSD-3-Clause
21PKG_LICENSE_FILES:=LICENSE
22PKG_CPE_ID:=cpe:/a:libevent_project:libevent
23
24PKG_CONFIG_DEPENDS:= \
25 CONFIG_PACKAGE_libevent2-openssl \
26 CONFIG_PACKAGE_libevent2-pthreads \
27 CONFIG_PACKAGE_libevent2-mbedtls
28
29PKG_BUILD_FLAGS:=gc-sections lto
30
31include $(INCLUDE_DIR)/package.mk
32include $(INCLUDE_DIR)/cmake.mk
33
34define Package/libevent2/Default
35 SECTION:=libs
36 CATEGORY:=Libraries
37 TITLE:=Event notification
38 URL:=http://libevent.org
39 ABI_VERSION:=7
40endef
41
42define Package/libevent2/Default/description
43 The libevent API provides a mechanism to execute a callback function
44 when a specific event occurs on a file descriptor or after a timeout
45 has been reached. Furthermore, libevent also support callbacks due
46 to signals or regular timeouts.
47
48 libevent is meant to replace the event loop found in event driven
49 network servers. An application just needs to call event_dispatch()
50 and then add or remove events dynamically without having to change
51 the event loop.
52endef
53
54define Package/libevent2
55 $(call Package/libevent2/Default)
56 TITLE+= library (version 2.1)
57endef
58
59define Package/libevent2/description
60 $(call Package/libevent2/Default/description)
61
62 This package contains the libevent shared library historically
63 containing both the core & extra libraries.
64endef
65
66define Package/libevent2-core
67 $(call Package/libevent2/Default)
68 TITLE+= core library (version 2.1)
69endef
70
71define Package/libevent2-core/description
72 $(call Package/libevent2/Default/description)
73
74 This package contains the libevent core shared library for the event,
75 buffer & utility functions.
76endef
77
78define Package/libevent2-extra
79 $(call Package/libevent2/Default)
80 TITLE+= extra library (version 2.1)
81 DEPENDS+=+libevent2-core
82endef
83
84define Package/libevent2-extra/description
85 $(call Package/libevent2/Default/description)
86
87 This package contains the libevent extra shared library for specific
88 protocols including HTTP, DNS & RPC.
89endef
90
91define Package/libevent2-openssl
92 $(call Package/libevent2/Default)
93 TITLE+= OpenSSL library (version 2.1)
94 DEPENDS+=+libopenssl +libevent2-core
95endef
96
97define Package/libevent2-openssl/description
98 $(call Package/libevent2/Default/description)
99
100 This package contains the libevent OpenSSL shared library for encrypted
101 bufferevents.
102endef
103
104define Package/libevent2-pthreads
105 $(call Package/libevent2/Default)
106 TITLE+= Pthreads library (version 2.1)
107 DEPENDS+=+libpthread +libevent2-core
108endef
109
110define Package/libevent2-pthreads/description
111 $(call Package/libevent2/Default/description)
112
113 This package contains the libevent Pthreads shared library for
114 threading & locking.
115endef
116
117TARGET_CFLAGS += $(FPIC)
118TARGET_LDFLAGS += -Wl,--as-needed
119
120CMAKE_OPTIONS += \
121 -DEVENT__DISABLE_BENCHMARK:BOOL=ON \
122 -DEVENT__DISABLE_DEBUG_MODE:BOOL=ON \
123 -DEVENT__DISABLE_REGRESS:BOOL=ON \
124 -DEVENT__DISABLE_SAMPLES:BOOL=ON \
125 $(if $(CONFIG_PACKAGE_libevent2-openssl),-DEVENT__DISABLE_OPENSSL:BOOL=OFF,-DEVENT__DISABLE_OPENSSL:BOOL=ON) \
126 $(if $(CONFIG_PACKAGE_libevent2-pthreads),-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF,-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=ON) \
127 -DEVENT__DISABLE_TESTS:BOOL=ON \
128 -DBUILD_TESTING:BOOL=OFF
129
130define Build/InstallDev
131 $(call Build/InstallDev/cmake,$(1))
132 $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libevent*.pc
133 $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libevent*.pc
134endef
135
136define Package/libevent2/install
137 $(INSTALL_DIR) $(1)/usr/lib
138 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent-2.1.so.* $(1)/usr/lib/
139endef
140
141define Package/libevent2-core/install
142 $(INSTALL_DIR) $(1)/usr/lib
143 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_core-2.1.so.* $(1)/usr/lib/
144endef
145
146define Package/libevent2-extra/install
147 $(INSTALL_DIR) $(1)/usr/lib
148 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_extra-2.1.so.* $(1)/usr/lib/
149endef
150
151define Package/libevent2-openssl/install
152 $(INSTALL_DIR) $(1)/usr/lib
153 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_openssl-2.1.so.* $(1)/usr/lib/
154endef
155
156define Package/libevent2-pthreads/install
157 $(INSTALL_DIR) $(1)/usr/lib
158 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_pthreads-2.1.so.* $(1)/usr/lib/
159endef
160
161$(eval $(call BuildPackage,libevent2))
162$(eval $(call BuildPackage,libevent2-core))
163$(eval $(call BuildPackage,libevent2-extra))
164$(eval $(call BuildPackage,libevent2-openssl))
165$(eval $(call BuildPackage,libevent2-pthreads))