procd: make mDNS TXT record parsing more solid
[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.12
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:=92e6de1be9ec176428fd2367677e61ceffc2ee1cb119035037a27d346b0403bb
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_LICENSE_FILES:=LICENSE
22 PKG_CPE_ID:=cpe:/a:libevent_project:libevent
23
24 PKG_CONFIG_DEPENDS:= \
25 CONFIG_PACKAGE_libevent2-openssl \
26 CONFIG_PACKAGE_libevent2-pthreads \
27 CONFIG_PACKAGE_libevent2-mbedtls
28
29 include $(INCLUDE_DIR)/package.mk
30 include $(INCLUDE_DIR)/cmake.mk
31
32 define Package/libevent2/Default
33 SECTION:=libs
34 CATEGORY:=Libraries
35 TITLE:=Event notification
36 URL:=http://libevent.org
37 ABI_VERSION:=7
38 endef
39
40 define Package/libevent2/Default/description
41 The libevent API provides a mechanism to execute a callback function
42 when a specific event occurs on a file descriptor or after a timeout
43 has been reached. Furthermore, libevent also support callbacks due
44 to signals or regular timeouts.
45
46 libevent is meant to replace the event loop found in event driven
47 network servers. An application just needs to call event_dispatch()
48 and then add or remove events dynamically without having to change
49 the event loop.
50 endef
51
52 define Package/libevent2
53 $(call Package/libevent2/Default)
54 TITLE+= library (version 2.1)
55 endef
56
57 define Package/libevent2/description
58 $(call Package/libevent2/Default/description)
59
60 This package contains the libevent shared library historically
61 containing both the core & extra libraries.
62 endef
63
64 define Package/libevent2-core
65 $(call Package/libevent2/Default)
66 TITLE+= core library (version 2.1)
67 endef
68
69 define Package/libevent2-core/description
70 $(call Package/libevent2/Default/description)
71
72 This package contains the libevent core shared library for the event,
73 buffer & utility functions.
74 endef
75
76 define Package/libevent2-extra
77 $(call Package/libevent2/Default)
78 TITLE+= extra library (version 2.1)
79 DEPENDS+=+libevent2-core
80 endef
81
82 define Package/libevent2-extra/description
83 $(call Package/libevent2/Default/description)
84
85 This package contains the libevent extra shared library for specific
86 protocols including HTTP, DNS & RPC.
87 endef
88
89 define Package/libevent2-openssl
90 $(call Package/libevent2/Default)
91 TITLE+= OpenSSL library (version 2.1)
92 DEPENDS+=+libopenssl +libevent2-core
93 endef
94
95 define Package/libevent2-openssl/description
96 $(call Package/libevent2/Default/description)
97
98 This package contains the libevent OpenSSL shared library for encrypted
99 bufferevents.
100 endef
101
102 define Package/libevent2-pthreads
103 $(call Package/libevent2/Default)
104 TITLE+= Pthreads library (version 2.1)
105 DEPENDS+=+libpthread +libevent2-core
106 endef
107
108 define Package/libevent2-pthreads/description
109 $(call Package/libevent2/Default/description)
110
111 This package contains the libevent Pthreads shared library for
112 threading & locking.
113 endef
114
115 TARGET_CFLAGS += $(FPIC) -ffunction-sections -fdata-sections -flto
116 TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed -flto
117
118 CMAKE_OPTIONS += \
119 -DEVENT__DISABLE_BENCHMARK:BOOL=ON \
120 -DEVENT__DISABLE_DEBUG_MODE:BOOL=ON \
121 -DEVENT__DISABLE_REGRESS:BOOL=ON \
122 -DEVENT__DISABLE_SAMPLES:BOOL=ON \
123 $(if $(CONFIG_PACKAGE_libevent2-openssl),-DEVENT__DISABLE_OPENSSL:BOOL=OFF,-DEVENT__DISABLE_OPENSSL:BOOL=ON) \
124 $(if $(CONFIG_PACKAGE_libevent2-pthreads),-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=OFF,-DEVENT__DISABLE_THREAD_SUPPORT:BOOL=ON) \
125 -DEVENT__DISABLE_TESTS:BOOL=ON \
126 -DBUILD_TESTING:BOOL=OFF
127
128 define Build/InstallDev
129 $(call Build/InstallDev/cmake,$(1))
130 $(SED) 's,/usr/include,$$$${prefix}/include,g' $(1)/usr/lib/pkgconfig/libevent*.pc
131 $(SED) 's,/usr/lib,$$$${exec_prefix}/lib,g' $(1)/usr/lib/pkgconfig/libevent*.pc
132 endef
133
134 define Package/libevent2/install
135 $(INSTALL_DIR) $(1)/usr/lib
136 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent-2.1.so.* $(1)/usr/lib/
137 endef
138
139 define Package/libevent2-core/install
140 $(INSTALL_DIR) $(1)/usr/lib
141 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_core-2.1.so.* $(1)/usr/lib/
142 endef
143
144 define Package/libevent2-extra/install
145 $(INSTALL_DIR) $(1)/usr/lib
146 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_extra-2.1.so.* $(1)/usr/lib/
147 endef
148
149 define Package/libevent2-openssl/install
150 $(INSTALL_DIR) $(1)/usr/lib
151 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_openssl-2.1.so.* $(1)/usr/lib/
152 endef
153
154 define Package/libevent2-pthreads/install
155 $(INSTALL_DIR) $(1)/usr/lib
156 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libevent_pthreads-2.1.so.* $(1)/usr/lib/
157 endef
158
159 $(eval $(call BuildPackage,libevent2))
160 $(eval $(call BuildPackage,libevent2-core))
161 $(eval $(call BuildPackage,libevent2-extra))
162 $(eval $(call BuildPackage,libevent2-openssl))
163 $(eval $(call BuildPackage,libevent2-pthreads))