Makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. include $(TOPDIR)/rules.mk
  3. PKG_NAME:=alfred
  4. PKG_VERSION:=2025.1
  5. PKG_RELEASE:=1
  6. PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
  7. PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
  8. PKG_HASH:=7fb8b3f1cc4ec488e8d43fd915dda0a7cdf5b611bf39d60ddeb4486ac0025f18
  9. PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
  10. PKG_LICENSE:=GPL-2.0-only MIT
  11. PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
  12. PKG_BUILD_PARALLEL:=1
  13. PKG_BUILD_FLAGS:=gc-sections lto
  14. PKG_CONFIG_DEPENDS += \
  15. CONFIG_ALFRED_NEEDS_lua \
  16. CONFIG_ALFRED_NEEDS_libgps \
  17. CONFIG_PACKAGE_ALFRED_VIS \
  18. CONFIG_PACKAGE_ALFRED_BATHOSTS \
  19. CONFIG_PACKAGE_ALFRED_GPSD
  20. include $(INCLUDE_DIR)/package.mk
  21. define Package/alfred
  22. SECTION:=net
  23. CATEGORY:=Network
  24. TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
  25. URL:=https://www.open-mesh.org/
  26. DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
  27. +ALFRED_NEEDS_lua:lua \
  28. +ALFRED_NEEDS_libgps:libgps
  29. endef
  30. define Package/alfred/description
  31. alfred is a user space daemon for distributing arbitrary local information
  32. over the mesh/network in a decentralized fashion. This data can be anything
  33. which appears to be useful - originally designed to replace the batman-adv
  34. visualization (vis), you may distribute hostnames, phone books, administration
  35. information, DNS information, the local weather forecast ...
  36. alfred runs as daemon in the background of the system. A user may insert
  37. information by using the alfred binary on the command line, or use special
  38. programs to communicate with alfred (done via unix sockets). alfred then takes
  39. care of distributing the local information to other alfred servers on other
  40. nodes. This is done via IPv6 link-local multicast, and does not require any
  41. configuration. A user can request data from alfred, and will receive the
  42. information available from all alfred servers in the network.
  43. endef
  44. define Package/alfred/conffiles
  45. /etc/config/alfred
  46. endef
  47. define Package/alfred/config
  48. source "$(SOURCE)/Config.in"
  49. endef
  50. MAKE_FLAGS += \
  51. CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
  52. CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
  53. CONFIG_ALFRED_CAPABILITIES=n \
  54. LIBNL_NAME="libnl-tiny" \
  55. LIBNL_GENL_NAME="libnl-tiny" \
  56. REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
  57. define Package/alfred/install
  58. $(INSTALL_DIR) $(1)/usr/sbin
  59. cp -fpR $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/
  60. [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true
  61. [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true
  62. $(INSTALL_DIR) $(1)/etc/init.d
  63. $(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
  64. $(INSTALL_DIR) $(1)/etc/config
  65. $(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
  66. $(INSTALL_DIR) $(1)/etc/alfred
  67. [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
  68. endef
  69. $(eval $(call BuildPackage,alfred))