2 # Copyright (C) 2010 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 # $Id: Makefile 5624 2006-11-23 00:29:07Z nbd $
9 include $(TOPDIR
)/rules.mk
14 BATCTL_VERSION
:=2014.1.0
16 PKG_MD5SUM
:=d55aabb2bc508194407187648c773c1b
17 BATCTL_MD5SUM
:=92fd4cb60e38ec952fb5fdda4b2e6933
19 PKG_SOURCE
:=$(PKG_NAME
)-$(PKG_VERSION
).
tar.gz
20 PKG_SOURCE_URL
:=http
://downloads.open-mesh.org
/batman
/releases
/batman-adv-
$(PKG_VERSION
)
22 PKG_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)/$(PKG_NAME
)-$(PKG_VERSION
)
23 PKG_BATCTL_BUILD_DIR
:=$(BUILD_DIR
)/$(PKG_NAME
)/batctl-
$(BATCTL_VERSION
)
25 include $(INCLUDE_DIR
)/package.mk
26 include $(INCLUDE_DIR
)/kernel.mk
28 define KernelPackage
/batman-adv
29 URL
:=http
://www.open-mesh.org
/
30 MAINTAINER
:=Marek Lindner
<mareklindner@neomailbox.ch
>
31 SUBMENU
:=Network Support
32 DEPENDS
:=+KMOD_BATMAN_ADV_BLA
:kmod-lib-crc16
+kmod-crypto-core
+kmod-crypto-crc32c
+kmod-lib-crc32c
+libc
+libnl-tiny
33 TITLE
:=B.A.T.M.A.N. Adv
34 FILES
:=$(PKG_BUILD_DIR
)/batman-adv.
$(LINUX_KMOD_SUFFIX
)
35 AUTOLOAD
:=$(call AutoLoad
,50,batman-adv
)
38 define KernelPackage
/batman-adv
/description
39 B.A.T.M.A.N. advanced is a kernel module which allows to
40 build layer
2 mesh networks. This package contains the
41 version
$(PKG_VERSION
) of the kernel module plus its user space
42 configuration
& managerment tool batctl.
45 define KernelPackage
/batman-adv
/config
46 source
"$(SOURCE)/Config.in"
49 MAKE_BATMAN_ADV_ARGS
+= \
50 CROSS_COMPILE
="$(TARGET_CROSS)" \
51 KERNELPATH
="$(LINUX_DIR)" \
52 ARCH
="$(LINUX_KARCH)" \
53 PATH
="$(TARGET_PATH)" \
54 SUBDIRS
="$(PKG_BUILD_DIR)" \
55 PWD
="$(PKG_BUILD_DIR)" \
56 LINUX_VERSION
="$(LINUX_VERSION)" \
57 CONFIG_BATMAN_ADV_DEBUG
=$(if
$(CONFIG_KMOD_BATMAN_ADV_DEBUG_LOG
),y
,n
) \
58 CONFIG_BATMAN_ADV_BLA
=$(if
$(CONFIG_KMOD_BATMAN_ADV_BLA
),y
,n
) \
59 CONFIG_BATMAN_ADV_DAT
=$(if
$(CONFIG_KMOD_BATMAN_ADV_DAT
),y
,n
) \
60 CONFIG_BATMAN_ADV_NC
=$(if
$(CONFIG_KMOD_BATMAN_ADV_NC
),y
,n
) \
63 # The linker can identify unused sections of a binary when each symbol is stored
64 # in a separate section. This mostly removes unused linker sections and reduces
65 # the size by ~3% on mipsel.
67 TARGET_CFLAGS
+= -ffunction-sections
-fdata-sections
68 TARGET_LDFLAGS
+= -Wl
,--gc-sections
70 # Link-time optimization allows to move parts of the optimization from the single
71 # source file to the global source view. This is done by emitting the GIMPLE
72 # representation in each object file and analyzing it again during the link step.
74 TARGET_CFLAGS
+= -flto
75 TARGET_LDFLAGS
+= -fuse-linker-plugin
78 CPPFLAGS
="$(TARGET_CPPFLAGS)" \
79 CFLAGS
="$(TARGET_CFLAGS)" \
80 LDFLAGS
="$(TARGET_LDFLAGS)" \
81 LIBNL_NAME
="libnl-tiny"
86 DESTDIR
="$(PKG_INSTALL_DIR)" \
89 ifneq ($(DEVELOPER
)$(CONFIG_KMOD_BATMAN_ADV_BATCTL
),)
90 define Download
/batctl
91 FILE
:=batctl-
$(BATCTL_VERSION
).
tar.gz
92 URL
:=$(PKG_SOURCE_URL
)
93 MD5SUM
:=$(BATCTL_MD5SUM
)
95 $(eval
$(call Download
,batctl
))
97 BATCTL_EXTRACT
= tar xzf
"$(DL_DIR)/batctl-$(BATCTL_VERSION).tar.gz" -C
"$(BUILD_DIR)/$(PKG_NAME)"
98 BATCTL_PATCH
= $(call Build
/DoPatch
,"$(PKG_BATCTL_BUILD_DIR)","$(PATCH_DIR)","*batctl*")
99 BATCTL_BUILD
= $(MAKE_BATCTL_ENV
) $(MAKE
) -C
$(PKG_BATCTL_BUILD_DIR
) $(MAKE_BATCTL_ARGS
)
100 BATCTL_INSTALL
= $(INSTALL_BIN
) $(PKG_INSTALL_DIR
)/usr
/local
/sbin
/batctl
$(1)/usr
/sbin
/
105 @if
[ -d
"$(2)" ]; then \
106 if
[ "$$$$(ls $(2) | grep -Ec $(3))" -gt
0 ]; then \
107 $(KPATCH
) "$(1)" "$(2)" "$(3)"; \
113 $(call Build
/DoPatch
,"$(PKG_BUILD_DIR)","$(PATCH_DIR)","*batman*")
119 $(call Build
/Prepare
/Default
)
120 $(SED
) '/#define _NET_BATMAN_ADV_MAIN_H_/a\#undef CONFIG_MODULE_STRIPPED' \
121 $(PKG_BUILD_DIR
)/main.h
126 $(MAKE
) -C
"$(PKG_BUILD_DIR)" $(MAKE_BATMAN_ADV_ARGS
)
131 rm -rf
$(BUILD_DIR
)/$(PKG_NAME
)/
134 define KernelPackage
/batman-adv
/install
135 $(INSTALL_DIR
) $(1)/etc
/config
$(1)/etc
/hotplug.d
/net
$(1)/etc
/hotplug.d
/iface
$(1)/lib
/batman-adv
$(1)/usr
/sbin
$(1)/lib
/netifd
/proto
136 $(INSTALL_DATA
) .
/files
/etc
/config
/batman-adv
$(1)/etc
/config
137 $(INSTALL_DATA
) .
/files
/lib
/batman-adv
/config.sh
$(1)/lib
/batman-adv
138 $(INSTALL_BIN
) .
/files
/etc
/hotplug.d
/net
/99-batman-adv
$(1)/etc
/hotplug.d
/net
139 $(INSTALL_BIN
) .
/files
/lib
/netifd
/proto
/batadv.sh
$(1)/lib
/netifd
/proto
143 $(eval
$(call KernelPackage
,batman-adv
))