e93e3d72ecee862709e737880209c04649ca95fd
[feed/routing.git] / alfred / Makefile
1 # SPDX-License-Identifier: GPL-2.0-only
2
3 include $(TOPDIR)/rules.mk
4
5 PKG_NAME:=alfred
6 PKG_VERSION:=2020.0
7 PKG_RELEASE:=1
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:=1505bcb235289baaad25a5001a0189e4f16e5c4f023db62a8682c0eb91b162c0
12
13 PKG_MAINTAINER:=Simon Wunderlich <sw@simonwunderlich.de>
14 PKG_LICENSE:=GPL-2.0-only MIT
15 PKG_LICENSE_FILES:=LICENSES/preferred/GPL-2.0 LICENSES/preferred/MIT
16
17 include $(INCLUDE_DIR)/package.mk
18
19 define Package/alfred
20 SECTION:=net
21 CATEGORY:=Network
22 TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
23 URL:=https://www.open-mesh.org/
24 DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
25 +ALFRED_NEEDS_lua:lua \
26 +ALFRED_NEEDS_libgps:libgps
27 endef
28
29 define Package/alfred/description
30 alfred is a user space daemon for distributing arbitrary local information
31 over the mesh/network in a decentralized fashion. This data can be anything
32 which appears to be useful - originally designed to replace the batman-adv
33 visualization (vis), you may distribute hostnames, phone books, administration
34 information, DNS information, the local weather forecast ...
35
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
45 define Package/alfred/conffiles
46 /etc/config/alfred
47 endef
48
49 define Package/alfred/config
50 source "$(SOURCE)/Config.in"
51 endef
52
53 MAKE_FLAGS += \
54 CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
55 CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
56 CONFIG_ALFRED_CAPABILITIES=n \
57 LIBNL_NAME="libnl-tiny" \
58 LIBNL_GENL_NAME="libnl-tiny" \
59 REVISION="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
60
61 TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
62 TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin
63
64 define Package/alfred/install
65 $(INSTALL_DIR) $(1)/usr/sbin
66 cp -fpR $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/
67 [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true
68 [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true
69 $(INSTALL_DIR) $(1)/etc/init.d
70 $(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
71 $(INSTALL_DIR) $(1)/etc/config
72 $(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
73 $(INSTALL_DIR) $(1)/etc/alfred
74 [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
75 endef
76
77 $(eval $(call BuildPackage,alfred))