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