Makefile 3.2 KB
Newer Older
1
# SPDX-License-Identifier: GPL-2.0-only
2 3 4 5

include $(TOPDIR)/rules.mk

PKG_NAME:=alfred
6
PKG_VERSION:=2023.0
7
PKG_RELEASE:=$(AUTORELEASE)
8 9

PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
10
PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
11
PKG_HASH:=c5ecadce50e8228a912b4894567ad45d6ff1d2ba3991c978456e4bef9b7dbad1
12 13

PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
14 15
PKG_LICENSE:=GPL-2.0-only MIT
PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
16

S
Sven Eckelmann 已提交
17 18
PKG_BUILD_PARALLEL:=1

19 20 21 22 23 24 25
PKG_CONFIG_DEPENDS += \
	CONFIG_ALFRED_NEEDS_lua \
	CONFIG_ALFRED_NEEDS_libgps \
	CONFIG_PACKAGE_ALFRED_VIS \
	CONFIG_PACKAGE_ALFRED_BATHOSTS \
	CONFIG_PACKAGE_ALFRED_GPSD

26 27 28 29 30 31
include $(INCLUDE_DIR)/package.mk

define Package/alfred
  SECTION:=net
  CATEGORY:=Network
  TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
32
  URL:=https://www.open-mesh.org/
33
  DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
34 35
            +ALFRED_NEEDS_lua:lua \
            +ALFRED_NEEDS_libgps:libgps
36 37 38
endef

define Package/alfred/description
39 40 41 42 43 44 45 46 47 48 49 50 51
  alfred is a user space daemon for distributing arbitrary local information
  over the mesh/network in a decentralized fashion. This data can be anything
  which appears to be useful - originally designed to replace the batman-adv
  visualization (vis), you may distribute hostnames, phone books, administration
  information, DNS information, the local weather forecast ...

  alfred runs as daemon in the background of the system. A user may insert
  information by using the alfred binary on the command line, or use special
  programs to communicate with alfred (done via unix sockets). alfred then takes
  care of distributing the local information to other alfred servers on other
  nodes. This is done via IPv6 link-local multicast, and does not require any
  configuration. A user can request data from alfred, and will receive the
  information available from all alfred servers in the network.
52 53 54 55 56 57 58 59 60 61
endef

define Package/alfred/conffiles
/etc/config/alfred
endef

define Package/alfred/config
	source "$(SOURCE)/Config.in"
endef

62
MAKE_FLAGS += \
63
	CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
64
	CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
65 66
	CONFIG_ALFRED_CAPABILITIES=n \
        LIBNL_NAME="libnl-tiny" \
67
        LIBNL_GENL_NAME="libnl-tiny" \
A
Adrian Schmutzler 已提交
68
        REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
69 70 71 72 73 74 75

TARGET_CFLAGS  += -ffunction-sections -fdata-sections -flto
TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin

define Package/alfred/install
	$(INSTALL_DIR) $(1)/usr/sbin
	cp -fpR  $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/
76
	[ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR  $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true
77
	[ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR  $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true
78 79 80 81
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
82 83
	$(INSTALL_DIR) $(1)/etc/alfred
	[ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
84 85 86
endef

$(eval $(call BuildPackage,alfred))