687f1b93a74accd68d56204350fae3e7b4aa40d7
[oweals/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))