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
:=6265b8a3e99186ecb6e0cf7dde84fe8b67c66d9fefa6286f9f12110e98f28b1a
15 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
16 PKG_SOURCE_URL
:=https
://downloads.open-mesh.org
/batman
/releases
/batman-adv-
$(PKG_VERSION
)
19 include $(INCLUDE_DIR
)/package.mk
24 URL
:=https
://www.open-mesh.org
/
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
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 ...
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.
49 define Package
/alfred
/conffiles
53 define Package
/alfred
/config
54 source
"$(SOURCE)/Config.in"
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"
64 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
-flto
65 TARGET_LDFLAGS
+= -Wl
,--gc-sections
-fuse-linker-plugin
68 CFLAGS
="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
69 LDFLAGS
="$(TARGET_LDFLAGS)" \
70 $(MAKE
) -C
$(PKG_BUILD_DIR
) $(MAKE_FLAGS
) $(MAKE_ALFRED_FLAGS
) all
73 define Package
/alfred
/install
74 $(INSTALL_DIR
) $(1)/usr
/sbin
75 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 $(INSTALL_DIR
) $(1)/etc
/init.d
79 $(INSTALL_BIN
) .
/files
/alfred.init
$(1)/etc
/init.d
/alfred
80 $(INSTALL_DIR
) $(1)/etc
/config
81 $(INSTALL_DATA
) .
/files
/alfred.config
$(1)/etc
/config
/alfred
82 $(INSTALL_DIR
) $(1)/etc
/alfred
83 [ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN
) .
/files
/bat-hosts.lua
$(1)/etc
/alfred
/bat-hosts.lua
; true
86 $(eval
$(call BuildPackage
,alfred
))