Merge pull request #459 from pmelange/olsrd_0.9.7
[feed/routing.git] / alfred / Makefile
1 #
2 # Copyright (C) 2013 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=alfred
11 PKG_VERSION:=2019.1
12 PKG_RELEASE:=0
13 PKG_HASH:=7252a4d137a4cd38946e38b0c462487f09dd43fa18823c90d180ea7fce2b515b
14
15 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
16 PKG_SOURCE_URL:=https://downloads.open-mesh.org/batman/releases/batman-adv-$(PKG_VERSION)
17 PKG_LICENSE:=GPL-2.0
18
19 include $(INCLUDE_DIR)/package.mk
20
21 init-y := alfred
22
23 define Package/alfred
24 URL:=https://www.open-mesh.org/
25 SECTION:=net
26 CATEGORY:=Network
27 TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
28 DEPENDS:= +libc @IPV6 +libnl-tiny +librt \
29 +ALFRED_NEEDS_lua:lua \
30 +ALFRED_NEEDS_libgps:libgps
31 endef
32
33 define Package/alfred/description
34 alfred is a user space daemon for distributing arbitrary local information over
35 the mesh/network in a decentralized fashion. This data can be anything which
36 appears to be useful - originally designed to replace the batman-adv
37 visualization (vis), you may distribute hostnames, phone books, administration
38 information, DNS information, the local weather forecast ...
39
40 alfred runs as daemon in the background of the system. A user may insert
41 information by using the alfred binary on the command line, or use special
42 programs to communicate with alfred (done via unix sockets). alfred then takes
43 care of distributing the local information to other alfred servers on other
44 nodes. This is done via IPv6 link-local multicast, and does not require any
45 configuration. A user can request data from alfred, and will receive the
46 information available from all alfred servers in the network.
47 endef
48
49 define Package/alfred/conffiles
50 /etc/config/alfred
51 endef
52
53 define Package/alfred/config
54 source "$(SOURCE)/Config.in"
55 endef
56
57 MAKE_ALFRED_FLAGS=\
58 CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
59 CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
60 CONFIG_ALFRED_CAPABILITIES=n \
61 LIBNL_NAME="libnl-tiny" \
62 LIBNL_GENL_NAME="libnl-tiny" \
63 REVISION="openwrt-$(PKG_VERSION)-$(PKG_RELEASE)"
64
65 TARGET_CFLAGS += -ffunction-sections -fdata-sections -flto
66 TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin
67
68 define Build/Compile
69 CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
70 LDFLAGS="$(TARGET_LDFLAGS)" \
71 $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) $(MAKE_ALFRED_FLAGS) all
72 endef
73
74 define Package/alfred/install
75 $(INSTALL_DIR) $(1)/usr/sbin
76 cp -fpR $(PKG_BUILD_DIR)/alfred $(1)/usr/sbin/
77 [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/vis/batadv-vis $(1)/usr/sbin/ ; true
78 [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp -fpR $(PKG_BUILD_DIR)/gpsd/alfred-gpsd $(1)/usr/sbin/ ; true
79 $(INSTALL_DIR) $(1)/etc/init.d
80 $(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
81 $(INSTALL_DIR) $(1)/etc/config
82 $(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
83 $(INSTALL_DIR) $(1)/etc/alfred
84 [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
85 endef
86
87 $(eval $(call BuildPackage,alfred))