Makefile 3.0 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
#
# Copyright (C) 2013 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#

include $(TOPDIR)/rules.mk

#
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.2
15
PKG_RELEASE:=0
16
PKG_MD5SUM:=cc7d5b352942477033a4cafbed84152d
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)
S
Steven Barth 已提交
20
PKG_LICENSE:=GPL-2.0
21 22 23 24 25 26

include $(INCLUDE_DIR)/package.mk

init-y := alfred

define Package/alfred
27
  URL:=https://www.open-mesh.org/
28 29 30
  SECTION:=net
  CATEGORY:=Network
  TITLE:=A.L.F.R.E.D. - Almighty Lightweight Fact Remote Exchange Daemon
31
  DEPENDS:= +libc @IPV6 +librt \
32
	  +ALFRED_NEEDS_lua:lua \
33
	  +ALFRED_NEEDS_libgps:libgps
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
endef

define Package/alfred/description
alfred is a user space daemon for distributing arbitrary local information over
the mesh/network in a decentralized fashion. This data can be anything which
appears to be useful - originally designed to replace the batman-adv
visualization (vis), you may distribute hostnames, phone books, administration
information, DNS information, the local weather forecast ...

alfred runs as daemon in the background of the system. A user may insert
information by using the alfred binary on the command line, or use special
programs to communicate with alfred (done via unix sockets). alfred then takes
care of distributing the local information to other alfred servers on other
nodes. This is done via IPv6 link-local multicast, and does not require any
configuration. A user can request data from alfred, and will receive the
information available from all alfred servers in the network.
endef

define Package/alfred/conffiles
/etc/config/alfred
endef

define Package/alfred/config
	source "$(SOURCE)/Config.in"
endef

MAKE_ALFRED_FLAGS=\
61
	CONFIG_ALFRED_VIS=$(if $(CONFIG_PACKAGE_ALFRED_VIS),y,n) \
62 63
	CONFIG_ALFRED_GPSD=$(if $(CONFIG_PACKAGE_ALFRED_GPSD),y,n) \
	CONFIG_ALFRED_CAPABILITIES=n
64 65 66 67 68 69 70 71 72 73 74 75 76

TARGET_CFLAGS  += -ffunction-sections -fdata-sections -flto
TARGET_LDFLAGS += -Wl,--gc-sections -fuse-linker-plugin

define Build/Compile
	CFLAGS="$(TARGET_CPPFLAGS) $(TARGET_CFLAGS)" \
	LDFLAGS="$(TARGET_LDFLAGS)" \
	$(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_FLAGS) $(MAKE_ALFRED_FLAGS) all
endef

define Package/alfred/install
	$(INSTALL_DIR) $(1)/usr/sbin
	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 80 81 82
	$(INSTALL_DIR) $(1)/etc/init.d
	$(INSTALL_BIN) ./files/alfred.init $(1)/etc/init.d/alfred
	$(INSTALL_DIR) $(1)/etc/config
	$(INSTALL_DATA) ./files/alfred.config $(1)/etc/config/alfred
83 84
	$(INSTALL_DIR) $(1)/etc/alfred
	[ "x$(CONFIG_PACKAGE_ALFRED_BATHOSTS)" == "xy" ] && $(INSTALL_BIN) ./files/bat-hosts.lua $(1)/etc/alfred/bat-hosts.lua ; true
85 86 87
endef

$(eval $(call BuildPackage,alfred))