2 # Copyright (C) 2006-2016 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 # No copyright by Harald Geyer as filling in a template doesn't constitute
8 # an original work in the sense of copyright law.
10 include $(TOPDIR
)/rules.mk
12 PKG_MAINTAINER
:=Harald Geyer
<harald@ccbib.org
>
15 PKG_LICENSE
:=BSD-3-Clause
16 PKG_LICENSE_FILES
:=doc
/COPYING
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
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
32 PKG_BUILD_DEPENDS
:=elektra
/host swig
/host
34 include $(INCLUDE_DIR
)/package.mk
35 include $(INCLUDE_DIR
)/host-build.mk
36 include $(INCLUDE_DIR
)/cmake.mk
38 define Package
/libelektra
/Default
42 URL
:=http
://www.libelektra.org
/
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.
51 define Package
/libelektra-core
52 $(call Package
/libelektra
/Default
)
53 TITLE
:=Elektra core library
57 define Package
/libelektra-core
/description
58 $(call Package
/libelektra
/Default-description
)
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.
65 define Package
/elektra-kdb
68 TITLE
:=Elektra kdb tool
69 URL
:=http
://www.libelektra.org
/
70 DEPENDS
:=+libelektra-core
+libstdcpp
73 define Package
/elektra-kdb
/description
74 $(call Package
/libelektra
/Default-description
)
76 This package contains the kdb tool
, which allows to access and change
77 the content of the key database from the
shell.
80 define Package
/libelektra-resolvers
81 $(call Package
/libelektra
/Default
)
82 TITLE
:=Elektra additional resolvers
83 DEPENDS
:=+libelektra-core
+libpthread
86 define Package
/libelektra-resolvers
/description
87 $(call Package
/libelektra
/Default-description
)
89 This package contains additional resolvers not included in the
90 libelektra-core package. Usually there is no reason to
install this.
93 define Package
/libelektra-plugins
94 $(call Package
/libelektra
/Default
)
95 TITLE
:=Useful elektra plugins
96 DEPENDS
:=+libelektra-core
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
106 CONTENT_ELEKTRA_PLUGINS
= $(strip $(CONTENT_ELEKTRA_PLUGINS_TEXT
))
108 define Package
/libelektra-plugins
/description
109 $(call Package
/libelektra
/Default-description
)
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
)
117 define Package
/libelektra-cpp
118 $(call Package
/libelektra
/Default
)
119 TITLE
:=Elektra plugins depending on libstdcpp
120 DEPENDS
:=+libelektra-core
+libstdcpp
123 CONTENT_ELEKTRA_CPP
=dump regexstore struct type
125 define Package
/libelektra-cpp
/description
126 $(call Package
/libelektra
/Default-description
)
128 This package contains plugins written in C
++.
130 $(CONTENT_ELEKTRA_CPP
)
133 define Package
/libelektra-boost
134 $(call Package
/libelektra
/Default
)
135 TITLE
:=Elektra plugins depending on boost
136 DEPENDS
:=+libelektra-core
+libstdcpp
+boost
139 define Package
/libelektra-boost
/description
140 $(call Package
/libelektra
/Default-description
)
142 This package contains plugins written in C
++ with an dependency on
143 boost. Currently this is a plugin for a tcl like format.
146 define Package
/libelektra-crypto
147 $(call Package
/libelektra
/Default
)
148 TITLE
:=Elektra crypto plugin
149 DEPENDS
:=+libelektra-core
+libopenssl
152 define Package
/libelektra-crypto
/description
153 $(call Package
/libelektra
/Default-description
)
155 This package contains support for encrypting values before storage.
158 define Package
/libelektra-curlget
159 $(call Package
/libelektra
/Default
)
160 TITLE
:=Elektra curlget plugin
161 DEPENDS
:=+libelektra-core
+libcurl
164 define Package
/libelektra-curlget
/description
165 $(call Package
/libelektra
/Default-description
)
167 This plugin can
get configuration data from remote URLs before access.
170 define Package
/libelektra-dbus
171 $(call Package
/libelektra
/Default
)
172 TITLE
:=Elektra dbus plugin
173 DEPENDS
:=+libelektra-core
+libdbus
176 define Package
/libelektra-dbus
/description
177 $(call Package
/libelektra
/Default-description
)
179 This package contains support for dbus notification on configuration
183 define Package
/libelektra-xml
184 $(call Package
/libelektra
/Default
)
185 TITLE
:=Elektra xmltool plugin
186 DEPENDS
:=+libelektra-core
+libxml2
189 define Package
/libelektra-xml
/description
190 $(call Package
/libelektra
/Default-description
)
192 This package contains a plugin for storing data with xml syntax.
195 define Package
/libelektra-yajl
196 $(call Package
/libelektra
/Default
)
197 TITLE
:=Elektra yajl
(json
) plugin
198 DEPENDS
:=+libelektra-core
+yajl
201 define Package
/libelektra-yajl
/description
202 $(call Package
/libelektra
/Default-description
)
204 This package contains support for storing the key database
as json files.
207 define Package
/libelektra-python2
208 $(call Package
/libelektra
/Default
)
209 TITLE
:=Elektra python2 plugin
210 DEPENDS
:=+libelektra-core
+python-light
+libstdcpp
213 define Package
/libelektra-python2
/description
214 $(call Package
/libelektra
/Default-description
)
216 This package adds python2 support to elektra.
219 define Package
/libelektra-python3
220 $(call Package
/libelektra
/Default
)
221 TITLE
:=Elektra python3 plugin
222 DEPENDS
:=+libelektra-core
+python3-light
+libstdcpp
225 define Package
/libelektra-python3
/description
226 $(call Package
/libelektra
/Default-description
)
228 This package adds python3 support to elektra.
231 define Package
/libelektra-lua
232 $(call Package
/libelektra
/Default
)
233 TITLE
:=Elektra lua plugin
234 DEPENDS
:=+libelektra-core
+lua
+libstdcpp
237 define Package
/libelektra-lua
/description
238 $(call Package
/libelektra
/Default-description
)
240 This package adds lua support to elektra.
243 define Package
/libelektra-extra
244 $(call Package
/libelektra
/Default
)
245 TITLE
:=Additional elektra plugins
246 DEPENDS
:=+libelektra-core
+libstdcpp
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
255 CONTENT_ELEKTRA_EXTRA
:=$(strip $(CONTENT_EXTRA_PLUGINS_TEXT
))
257 define Package
/libelektra-extra
/description
258 $(call Package
/libelektra
/Default-description
)
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
)
267 -DTARGET_PLUGIN_FOLDER
="" \
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 \
278 CMAKE_HOST_OPTIONS
= \
279 -DCMAKE_SKIP_RPATH
=FALSE \
280 -DCMAKE_INSTALL_RPATH
=$(STAGING_DIR_HOST
)/lib
/ \
281 -DINSTALL_BUILD_TOOLS
=ON \
283 -DBUILD_DOCUMENTATION
=OFF \
284 -DINSTALL_SYSTEM_FILES
=OFF \
285 -DFORCE_IN_SOURCE_BUILD
=ON \
286 -DBUILD_TESTING
=OFF \
287 -DPLUGINS
="ALL;-python2;-python" \
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
/
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
))