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
11 # The latest alfred git hash in PKG_REV can be obtained from http://git.open-mesh.org/alfred.git
16 PKG_MD5SUM
:=3891697e127b1037cfc9349fd96e9993
18 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
19 PKG_SOURCE_URL
:=http
://downloads.open-mesh.org
/batman
/releases
/batman-adv-
$(PKG_VERSION
)
21 include $(INCLUDE_DIR
)/package.mk
26 URL
:=http
://www.open-mesh.org
/
29 TITLE
:=A.L.F.R.E.D.
- Almighty Lightweight Fact Remote Exchange Daemon
30 DEPENDS
:= +libc
+IPV6
:kmod-ipv6
+librt \
31 +ALFRED_NEEDS_libgps
:libgps
34 define Package
/alfred
/description
35 alfred is a user space daemon for distributing arbitrary local information over
36 the mesh
/network in a decentralized fashion. This data can be anything which
37 appears to be useful
- originally designed to replace the batman-adv
38 visualization
(vis
), you may distribute hostnames
, phone books
, administration
39 information
, DNS information
, the local weather forecast ...
41 alfred runs
as daemon in the background of the system. A user may insert
42 information by using the alfred binary on the command line
, or use special
43 programs to communicate with alfred
(done via unix sockets
). alfred then takes
44 care of distributing the local information to other alfred servers on other
45 nodes. This is done via IPv6 link-local multicast
, and does not require any
46 configuration. A user can request data from alfred
, and will receive the
47 information available from
all alfred servers in the network.
50 define Package
/alfred
/conffiles
54 define Package
/alfred
/config
55 source
"$(SOURCE)/Config.in"
59 CONFIG_ALFRED_VIS
=$(if
$(CONFIG_PACKAGE_ALFRED_VIS
),y
,n
) \
60 CONFIG_ALFRED_GPSD
=$(if
$(CONFIG_PACKAGE_ALFRED_GPSD
),y
,n
)
62 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
-flto
63 TARGET_LDFLAGS
+= -Wl
,--gc-sections
-fuse-linker-plugin
66 CFLAGS
="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
67 LDFLAGS
="$(TARGET_LDFLAGS)" \
68 $(MAKE
) -C
$(PKG_BUILD_DIR
) $(MAKE_FLAGS
) $(MAKE_ALFRED_FLAGS
) all
71 define Package
/alfred
/install
72 $(INSTALL_DIR
) $(1)/usr
/sbin
73 cp
-fpR
$(PKG_BUILD_DIR
)/alfred
$(1)/usr
/sbin
/
74 [ "x$(CONFIG_PACKAGE_ALFRED_VIS)" == "xy" ] && cp
-fpR
$(PKG_BUILD_DIR
)/vis
/batadv-vis
$(1)/usr
/sbin
/ ; true
75 [ "x$(CONFIG_PACKAGE_ALFRED_GPSD)" == "xy" ] && cp
-fpR
$(PKG_BUILD_DIR
)/vis
/alfred-gpsd
$(1)/usr
/sbin
/ ; true
76 $(INSTALL_DIR
) $(1)/etc
/init.d
77 $(INSTALL_BIN
) .
/files
/alfred.init
$(1)/etc
/init.d
/alfred
78 $(INSTALL_DIR
) $(1)/etc
/config
79 $(INSTALL_DATA
) .
/files
/alfred.config
$(1)/etc
/config
/alfred
82 $(eval
$(call BuildPackage
,alfred
))