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