Merge pull request #4632 from smutt/python-dpkt
[feed/packages.git] / libs / elektra / Makefile
1 #
2 # Copyright (C) 2006-2016 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7 # No copyright by Harald Geyer as filling in a template doesn't constitute
8 # an original work in the sense of copyright law.
9
10 include $(TOPDIR)/rules.mk
11
12 PKG_MAINTAINER:=Harald Geyer <harald@ccbib.org>
13
14 PKG_NAME:=elektra
15 PKG_LICENSE:=BSD-3-Clause
16 PKG_LICENSE_FILES:=doc/COPYING
17 PKG_VERSION:=0.8.19
18 PKG_RELEASE:=1
19
20 # Use this for official releasees
21 PKG_HASH:=cc14f09539aa95623e884f28e8be7bd67c37550d25e08288108a54fd294fd2a8
22 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
23 PKG_SOURCE_URL:=http://ftp.libelektra.org/ftp/elektra/releases
24
25 # Use this to test versions still under development
26 #PKG_SOURCE_PROTO:=git
27 #PKG_SOURCE_URL:=https://github.com/ElektraInitiative/libelektra.git
28 #PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
29 #PKG_SOURCE_VERSION:=e97efb29a94f3a49cb952d06552fcf53708ea8c7
30 #PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.xz
31
32 PKG_BUILD_DEPENDS:=elektra/host swig/host
33
34 include $(INCLUDE_DIR)/package.mk
35 include $(INCLUDE_DIR)/host-build.mk
36 include $(INCLUDE_DIR)/cmake.mk
37
38 define Package/libelektra/Default
39 SECTION:=libs
40 CATEGORY:=Libraries
41 TITLE:=Elektra
42 URL:=http://www.libelektra.org/
43 SUBMENU:=libelektra
44 endef
45
46 define Package/libelektra/Default-description
47 Elektra provides an universal and secure framework to store
48 configuration parameters in a global, hierarchical key database.
49 endef
50
51 define Package/libelektra-core
52 $(call Package/libelektra/Default)
53 TITLE:=Elektra core library
54 DEPENDS:=+libpthread
55 endef
56
57 define Package/libelektra-core/description
58 $(call Package/libelektra/Default-description)
59
60 This package contains the core libraries, that all other parts of
61 elektra and all programs using elektra depend on, and an almost
62 minimal set of plugins to be actually useful.
63 endef
64
65 define Package/elektra-kdb
66 SECTION:=utils
67 CATEGORY:=Utilities
68 TITLE:=Elektra kdb tool
69 URL:=http://www.libelektra.org/
70 DEPENDS:=+libelektra-core +libstdcpp
71 endef
72
73 define Package/elektra-kdb/description
74 $(call Package/libelektra/Default-description)
75
76 This package contains the kdb tool, which allows to access and change
77 the content of the key database from the shell.
78 endef
79
80 define Package/libelektra-resolvers
81 $(call Package/libelektra/Default)
82 TITLE:=Elektra additional resolvers
83 DEPENDS:=+libelektra-core +libpthread
84 endef
85
86 define Package/libelektra-resolvers/description
87 $(call Package/libelektra/Default-description)
88
89 This package contains additional resolvers not included in the
90 libelektra-core package. Usually there is no reason to install this.
91 endef
92
93 define Package/libelektra-plugins
94 $(call Package/libelektra/Default)
95 TITLE:=Useful elektra plugins
96 DEPENDS:=+libelektra-core
97 endef
98
99 define CONTENT_ELEKTRA_PLUGINS_TEXT
100 base64 boolean cachefilter ccode conditionals csvstorage
101 enum filecheck glob hexcode hidden hosts iconv keytometa
102 line lineendings list mathcheck network null path profile
103 shell syslog uname validation
104 endef
105
106 CONTENT_ELEKTRA_PLUGINS = $(strip $(CONTENT_ELEKTRA_PLUGINS_TEXT))
107
108 define Package/libelektra-plugins/description
109 $(call Package/libelektra/Default-description)
110
111 This package contains plugins for various common configuration file
112 format and optional features without heavy dependencies. Currently
113 these plugins are included:
114 $(CONTENT_ELEKTRA_PLUGINS_TEXT)
115 endef
116
117 define Package/libelektra-cpp
118 $(call Package/libelektra/Default)
119 TITLE:=Elektra plugins depending on libstdcpp
120 DEPENDS:=+libelektra-core +libstdcpp
121 endef
122
123 CONTENT_ELEKTRA_CPP=dump regexstore struct type
124
125 define Package/libelektra-cpp/description
126 $(call Package/libelektra/Default-description)
127
128 This package contains plugins written in C++.
129 Currently these are:
130 $(CONTENT_ELEKTRA_CPP)
131 endef
132
133 define Package/libelektra-boost
134 $(call Package/libelektra/Default)
135 TITLE:=Elektra plugins depending on boost
136 DEPENDS:=+libelektra-core +libstdcpp +boost
137 endef
138
139 define Package/libelektra-boost/description
140 $(call Package/libelektra/Default-description)
141
142 This package contains plugins written in C++ with an dependency on
143 boost. Currently this is a plugin for a tcl like format.
144 endef
145
146 define Package/libelektra-crypto
147 $(call Package/libelektra/Default)
148 TITLE:=Elektra crypto plugin
149 DEPENDS:=+libelektra-core +libopenssl
150 endef
151
152 define Package/libelektra-crypto/description
153 $(call Package/libelektra/Default-description)
154
155 This package contains support for encrypting values before storage.
156 endef
157
158 define Package/libelektra-curlget
159 $(call Package/libelektra/Default)
160 TITLE:=Elektra curlget plugin
161 DEPENDS:=+libelektra-core +libcurl
162 endef
163
164 define Package/libelektra-curlget/description
165 $(call Package/libelektra/Default-description)
166
167 This plugin can get configuration data from remote URLs before access.
168 endef
169
170 define Package/libelektra-dbus
171 $(call Package/libelektra/Default)
172 TITLE:=Elektra dbus plugin
173 DEPENDS:=+libelektra-core +libdbus
174 endef
175
176 define Package/libelektra-dbus/description
177 $(call Package/libelektra/Default-description)
178
179 This package contains support for dbus notification on configuration
180 changes.
181 endef
182
183 define Package/libelektra-xml
184 $(call Package/libelektra/Default)
185 TITLE:=Elektra xmltool plugin
186 DEPENDS:=+libelektra-core +libxml2
187 endef
188
189 define Package/libelektra-xml/description
190 $(call Package/libelektra/Default-description)
191
192 This package contains a plugin for storing data with xml syntax.
193 endef
194
195 define Package/libelektra-yajl
196 $(call Package/libelektra/Default)
197 TITLE:=Elektra yajl (json) plugin
198 DEPENDS:=+libelektra-core +yajl
199 endef
200
201 define Package/libelektra-yajl/description
202 $(call Package/libelektra/Default-description)
203
204 This package contains support for storing the key database as json files.
205 endef
206
207 define Package/libelektra-python2
208 $(call Package/libelektra/Default)
209 TITLE:=Elektra python2 plugin
210 DEPENDS:=+libelektra-core +python-light +libstdcpp
211 endef
212
213 define Package/libelektra-python2/description
214 $(call Package/libelektra/Default-description)
215
216 This package adds python2 support to elektra.
217 endef
218
219 define Package/libelektra-python3
220 $(call Package/libelektra/Default)
221 TITLE:=Elektra python3 plugin
222 DEPENDS:=+libelektra-core +python3-light +libstdcpp
223 endef
224
225 define Package/libelektra-python3/description
226 $(call Package/libelektra/Default-description)
227
228 This package adds python3 support to elektra.
229 endef
230
231 define Package/libelektra-lua
232 $(call Package/libelektra/Default)
233 TITLE:=Elektra lua plugin
234 DEPENDS:=+libelektra-core +lua +libstdcpp
235 endef
236
237 define Package/libelektra-lua/description
238 $(call Package/libelektra/Default-description)
239
240 This package adds lua support to elektra.
241 endef
242
243 define Package/libelektra-extra
244 $(call Package/libelektra/Default)
245 TITLE:=Additional elektra plugins
246 DEPENDS:=+libelektra-core +libstdcpp
247 endef
248
249 define CONTENT_EXTRA_PLUGINS_TEXT
250 blockresolver c constants counter desktop dpkg error
251 fcrypt fstab logchange mozprefs passwd rename required
252 simplespeclang timeofday tracer
253 endef
254
255 CONTENT_ELEKTRA_EXTRA:=$(strip $(CONTENT_EXTRA_PLUGINS_TEXT))
256
257 define Package/libelektra-extra/description
258 $(call Package/libelektra/Default-description)
259
260 This package contains extra plugins that are only useful for debugging
261 or as an example of what can be done. Also most experimental plugins
262 are included in this package. Currently this includes:
263 $(CONTENT_EXTRA_PLUGINS_TEXT)
264 endef
265
266 CMAKE_OPTIONS = \
267 -DTARGET_PLUGIN_FOLDER="" \
268 -DBUILD_FULL=OFF \
269 -DBUILD_STATIC=OFF \
270 -DBUILD_DOCUMENTATION=OFF \
271 -DFORCE_IN_SOURCE_BUILD=ON \
272 -DBUILD_TESTING=OFF \
273 -DKDB_DEFAULT_RESOLVER=resolver_fm_pb_b \
274 -DKDB_DEFAULT_STORAGE=ini \
275 -DENABLE_OPTIMIZATIONS=OFF \
276 -DPLUGINS="ALL"
277
278 CMAKE_HOST_OPTIONS = \
279 -DCMAKE_SKIP_RPATH=FALSE \
280 -DCMAKE_INSTALL_RPATH=$(STAGING_DIR_HOST)/lib/ \
281 -DINSTALL_BUILD_TOOLS=ON \
282 -DBUILD_STATIC=OFF \
283 -DBUILD_DOCUMENTATION=OFF \
284 -DINSTALL_SYSTEM_FILES=OFF \
285 -DFORCE_IN_SOURCE_BUILD=ON \
286 -DBUILD_TESTING=OFF \
287 -DPLUGINS="ALL;-python2;-python" \
288 -DTOOLS="gen;kdb"
289
290 define Package/libelektra-core/install
291 $(INSTALL_DIR) $(1)/etc/kdb/
292 $(INSTALL_DIR) $(1)/usr/lib/
293 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra.so* $(1)/usr/lib/
294 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-core.so* $(1)/usr/lib/
295 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ease.so* $(1)/usr/lib/
296 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-kdb.so* $(1)/usr/lib/
297 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-meta.so* $(1)/usr/lib/
298 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-plugin.so* $(1)/usr/lib/
299 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-proposal.so* $(1)/usr/lib/
300 #The next is only supported with glibc, so skip it.
301 #$(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektraintercept-* $(1)/usr/lib/
302 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver_fm_pb_b.so $(1)/usr/lib/
303 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ni.so $(1)/usr/lib/
304 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-ini.so $(1)/usr/lib/
305 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-sync.so $(1)/usr/lib/
306 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-storage.so $(1)/usr/lib/
307 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver.so $(1)/usr/lib/
308 endef
309
310 define Package/elektra-kdb/install
311 $(INSTALL_DIR) $(1)/usr/bin/
312 $(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/kdb $(1)/usr/bin
313 $(INSTALL_DIR) $(1)/usr/lib/elektra/
314 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektratools* $(1)/usr/lib/
315 $(CP) $(PKG_INSTALL_DIR)/usr/lib/elektra/tool_exec/ $(1)/usr/lib/elektra/
316 endef
317
318 define Package/libelektra-resolvers/install
319 $(INSTALL_DIR) $(1)/usr/lib/
320 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-resolver_* $(1)/usr/lib/
321 rm -f $(1)/usr/lib/libelektra-resolver_fm_pb_b.so
322 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-wresolver.so $(1)/usr/lib/
323 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-noresolver.so $(1)/usr/lib/
324 endef
325
326 define Package/libelektra-plugins/install
327 $(INSTALL_DIR) $(1)/usr/lib/
328 $(CP) $(foreach plugin,$(CONTENT_ELEKTRA_PLUGINS),$(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so) $(1)/usr/lib/
329 endef
330
331 define Package/libelektra-boost/install
332 $(INSTALL_DIR) $(1)/usr/lib/
333 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-tcl.so $(1)/usr/lib/
334 endef
335
336 define Package/libelektra-cpp/install
337 $(INSTALL_DIR) $(1)/usr/lib/
338 $(CP) $(foreach plugin,$(CONTENT_ELEKTRA_CPP),$(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so) $(1)/usr/lib/
339 endef
340
341 define Package/libelektra-crypto/install
342 $(INSTALL_DIR) $(1)/usr/lib/
343 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-crypto_openssl.so $(1)/usr/lib/
344 endef
345
346 define Package/libelektra-curlget/install
347 $(INSTALL_DIR) $(1)/usr/lib/
348 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-curlget.so $(1)/usr/lib/
349 endef
350
351 define Package/libelektra-dbus/install
352 $(INSTALL_DIR) $(1)/usr/lib/
353 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-dbus.so $(1)/usr/lib/
354 endef
355
356 define Package/libelektra-xml/install
357 $(INSTALL_DIR) $(1)/usr/lib/
358 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-xmltool.so $(1)/usr/lib/
359 endef
360
361 define Package/libelektra-yajl/install
362 $(INSTALL_DIR) $(1)/usr/lib/
363 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-yajl.so $(1)/usr/lib/
364 endef
365
366 define Package/libelektra-python2/install
367 $(INSTALL_DIR) $(1)/usr/lib/
368 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-python2.so $(1)/usr/lib/
369 endef
370
371 define Package/libelektra-python3/install
372 $(INSTALL_DIR) $(1)/usr/lib/
373 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-python.so $(1)/usr/lib/
374 endef
375
376 define Package/libelektra-lua/install
377 $(INSTALL_DIR) $(1)/usr/lib/
378 $(CP) $(PKG_INSTALL_DIR)/usr/lib/libelektra-lua.so $(1)/usr/lib/
379 endef
380
381 define Package/libelektra-extra/install
382 $(INSTALL_DIR) $(1)/usr/lib/
383 $(CP) $(foreach plugin,$(CONTENT_ELEKTRA_EXTRA),$(PKG_INSTALL_DIR)/usr/lib/libelektra-$(plugin).so) $(1)/usr/lib/
384 endef
385
386 define Build/InstallDev
387 $(INSTALL_DIR) $(1)/usr/include/elektra/
388 $(CP) $(PKG_INSTALL_DIR)/usr/include/elektra/* $(1)/usr/include/elektra/
389 $(INSTALL_DIR) $(1)/usr/lib/
390 $(CP) $(PKG_INSTALL_DIR)/usr/lib/* $(1)/usr/lib/
391 endef
392
393
394 $(eval $(call HostBuild))
395 $(eval $(call BuildPackage,libelektra-core))
396 $(eval $(call BuildPackage,elektra-kdb))
397 $(eval $(call BuildPackage,libelektra-resolvers))
398 $(eval $(call BuildPackage,libelektra-plugins))
399 $(eval $(call BuildPackage,libelektra-boost))
400 $(eval $(call BuildPackage,libelektra-cpp))
401 $(eval $(call BuildPackage,libelektra-curlget))
402 $(eval $(call BuildPackage,libelektra-crypto))
403 $(eval $(call BuildPackage,libelektra-dbus))
404 $(eval $(call BuildPackage,libelektra-xml))
405 $(eval $(call BuildPackage,libelektra-yajl))
406 $(eval $(call BuildPackage,libelektra-python2))
407 $(eval $(call BuildPackage,libelektra-python3))
408 $(eval $(call BuildPackage,libelektra-lua))
409 $(eval $(call BuildPackage,libelektra-extra))