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