Makefile (12596B)
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_MD5SUM:=6669e765c834e259fb7570f126b85d7e 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))