2 # Copyright (C) 2013 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR
)/rules.mk
13 PKG_HASH
:=1505bcb235289baaad25a5001a0189e4f16e5c4f023db62a8682c0eb91b162c0
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
-only MIT
18 PKG_LICENSE_FILES
:=LICENSES
/preferred
/GPL-2.0 LICENSES
/preferred
/MIT
20 include $(INCLUDE_DIR
)/package.mk
23 URL
:=https
://www.open-mesh.org
/
26 TITLE
:=A.L.F.R.E.D.
- Almighty Lightweight Fact Remote Exchange Daemon
27 DEPENDS
:= +libc @IPV6
+libnl-tiny
+librt \
28 +ALFRED_NEEDS_lua
:lua \
29 +ALFRED_NEEDS_libgps
:libgps
32 define Package
/alfred
/description
33 alfred is a user space daemon for distributing arbitrary local information over
34 the mesh
/network in a decentralized fashion. This data can be anything which
35 appears to be useful
- originally designed to replace the batman-adv
36 visualization
(vis
), you may distribute hostnames
, phone books
, administration
37 information
, DNS information
, the local weather forecast ...
39 alfred runs
as daemon in the background of the system. A user may insert
40 information by using the alfred binary on the command line
, or use special
41 programs to communicate with alfred
(done via unix sockets
). alfred then takes
42 care of distributing the local information to other alfred servers on other
43 nodes. This is done via IPv6 link-local multicast
, and does not require any
44 configuration. A user can request data from alfred
, and will receive the
45 information available from
all alfred servers in the network.
48 define Package
/alfred
/conffiles
52 define Package
/alfred
/config
53 source
"$(SOURCE)/Config.in"
57 CONFIG_ALFRED_VIS
=$(if
$(CONFIG_PACKAGE_ALFRED_VIS
),y
,n
) \
58 CONFIG_ALFRED_GPSD
=$(if
$(CONFIG_PACKAGE_ALFRED_GPSD
),y
,n
) \
59 CONFIG_ALFRED_CAPABILITIES
=n \
60 LIBNL_NAME
="libnl-tiny" \
61 LIBNL_GENL_NAME
="libnl-tiny" \
62 REVISION
="$(PKG_VERSION)-openwrt-$(PKG_RELEASE)"
64 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
-flto
65 TARGET_LDFLAGS
+= -Wl
,--gc-sections
-fuse-linker-plugin
67 define Package
/alfred
/install
68 $(INSTALL_DIR
) $(1)/usr
/sbin
69 cp
-fpR
$(PKG_BUILD_DIR
)/alfred
$(1)/usr
/sbin
/
70 [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp
-fpR
$(PKG_BUILD_DIR
)/vis
/batadv-vis
$(1)/usr
/sbin
/ ; true
71 [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp
-fpR
$(PKG_BUILD_DIR
)/gpsd
/alfred-gpsd
$(1)/usr
/sbin
/ ; true
72 $(INSTALL_DIR
) $(1)/etc
/init.d
73 $(INSTALL_BIN
) .
/files
/alfred.init
$(1)/etc
/init.d
/alfred
74 $(INSTALL_DIR
) $(1)/etc
/config
75 $(INSTALL_DATA
) .
/files
/alfred.config
$(1)/etc
/config
/alfred
76 $(INSTALL_DIR
) $(1)/etc
/alfred
77 [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN
) .
/files
/bat-hosts.lua
$(1)/etc
/alfred
/bat-hosts.lua
; true
80 $(eval
$(call BuildPackage
,alfred
))