Merge pull request #198 from HRogge/master
[lede-routing/.git] / bmx7 / Makefile
1 #    Copyright (C) 2011 Fundacio Privada per a la Xarxa Oberta, Lliure i Neutral guifi.net
2 #
3 #    This program is free software; you can redistribute it and/or modify
4 #    it under the terms of the GNU General Public License as published by
5 #    the Free Software Foundation; either version 2 of the License, or
6 #    (at your option) any later version.
7 #
8 #    This program is distributed in the hope that it will be useful,
9 #    but WITHOUT ANY WARRANTY; without even the implied warranty of
10 #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 #    GNU General Public License for more details.
12 #
13 #    You should have received a copy of the GNU General Public License along
14 #    with this program; if not, write to the Free Software Foundation, Inc.,
15 #    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
16 #
17 #    The full GNU General Public License is included in this distribution in
18 #    the file called "COPYING".
19 #
20 # Contibutors:
21 #       Axel Neumann, Simó Albert i Beltran, Pau Escrich
22 #
23
24
25 include $(TOPDIR)/rules.mk
26
27 PKG_NAME:=bmx7
28
29 PKG_SOURCE_PROTO:=git
30
31 PKG_SOURCE_URL:=git://bmx6.net/bmx6.git
32 #PKG_SOURCE_URL:=git://github.com/axn/bmx6.git
33 #PKG_SOURCE_URL:=file:///usr/src/bmx6/bmx6.git
34
35 PKG_REV:=b2e3f4439a4b676c2b9c13b82706907fabb67059
36 PKG_VERSION:=r2016050108
37 PKG_RELEASE:=4
38 PKG_LICENSE:=GPL-2.0
39
40 PKG_SOURCE_VERSION:=$(PKG_REV)
41 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
42 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
43 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
44
45 include $(INCLUDE_DIR)/package.mk
46
47 TARGET_CFLAGS += $(FPIC)
48
49 MAKE_ARGS += \
50         EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DCRYPTLIB=POLARSSL_1_3_4 -DCORE_LIMIT=20000 -DTRAFFIC_DUMP -DNO_TRACE_FUNCTION_CALLS -DBMX7_LIB_IWINFO" \
51         EXTRA_LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -liwinfo" \
52         GIT_REV="$(PKG_REV)" \
53         CC="$(TARGET_CC)" \
54         INSTALL_DIR="$(PKG_INSTALL_DIR)" \
55         build_all
56
57 define Package/bmx7/Default
58   SECTION:=net
59   CATEGORY:=Network
60   SUBMENU:=Routing and Redirection
61   TITLE:=BMX7 layer 3 routing daemon
62   URL:=http://bmx6.net/
63   MAINTAINER:=Axel Neumann <neumann@cgws.de>
64   DEPENDS:=+zlib +libpolarssl +libiwinfo
65 endef
66
67 define Package/bmx7/description
68 BMX7 routing daemon supporting securely-entrusted IPv6 (and IPv4in6) routing
69 endef
70
71 define Package/bmx7
72   $(call Package/bmx7/Default)
73   MENU:=1
74 endef
75
76 define Package/bmx7-uci-config
77   $(call Package/bmx7/Default)
78   DEPENDS:=bmx7 +libuci
79   TITLE:=configuration plugin based on uci (recommended!)
80 endef
81
82 define Package/bmx7-iwinfo
83   $(call Package/bmx7/Default)
84   DEPENDS:=bmx7 +libiwinfo
85   TITLE:=link characteristics plugin based on libiwinfo
86 endef
87
88 define Package/bmx7-topology
89   $(call Package/bmx7/Default)
90   DEPENDS:=bmx7
91   TITLE:=topology plugin
92 endef
93
94 define Package/bmx7-json
95   $(call Package/bmx7/Default)
96   DEPENDS:=bmx7 +libjson-c
97   TITLE:=json plugin based on json-c
98 endef
99
100 define Package/bmx7-sms
101   $(call Package/bmx7/Default)
102   DEPENDS:=bmx7
103   TITLE:=sms plugin
104 endef
105
106 define Package/bmx7-tun
107   $(call Package/bmx7/Default)
108   DEPENDS:=bmx7 +kmod-ip6-tunnel +kmod-iptunnel6 +kmod-tun
109   TITLE:=ipip-based tunnel plugin (recommended!)
110 endef
111
112 define Package/bmx7-table
113   $(call Package/bmx7/Default)
114   DEPENDS:=bmx7 +bmx7-tun
115   TITLE:=plugin to announce routes from tables via tunnels
116 endef
117
118 define Build/Configure
119         mkdir -p $(PKG_INSTALL_DIR)
120 endef
121
122 define Build/Compile
123         $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
124 endef
125
126 define Package/bmx7/install
127         $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
128         $(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx7 $(1)/usr/sbin/bmx7
129 endef
130
131 define Package/bmx7/postinst
132 #!/bin/sh
133 # # check if we are on real system
134 if [ -z "$${IPKG_INSTROOT}" ]; then
135         if [ -f /etc/sysupgrade.conf ] && ! grep bmx7 /etc/sysupgrade.conf; then
136                 echo /etc/bmx7 >> /etc/sysupgrade.conf
137         fi
138 fi
139 endef
140
141
142 define Package/bmx7-uci-config/conffiles
143 /etc/config/bmx7
144 endef
145
146 define Package/bmx7-uci-config/install
147         $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
148         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_uci_config/bmx7_config.so $(1)/usr/lib/bmx7_config.so
149         $(INSTALL_BIN) ./files/etc/init.d/bmx7 $(1)/etc/init.d/bmx7
150         $(INSTALL_DATA) ./files/etc/config/bmx7 $(1)/etc/config/bmx7
151 endef
152
153 define Package/bmx7-iwinfo/install
154         $(INSTALL_DIR) $(1)/usr/lib
155         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_iwinfo/bmx7_iwinfo.so $(1)/usr/lib/bmx7_iwinfo.so
156 endef
157
158 define Package/bmx7-topology/install
159         $(INSTALL_DIR) $(1)/usr/lib
160         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_topology/bmx7_topology.so $(1)/usr/lib/bmx7_topology.so
161 endef
162
163 define Package/bmx7-json/install
164         $(INSTALL_DIR) $(1)/usr/lib
165         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_json/bmx7_json.so $(1)/usr/lib/bmx7_json.so
166 endef
167
168 define Package/bmx7-sms/install
169         $(INSTALL_DIR) $(1)/usr/lib
170         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_sms/bmx7_sms.so $(1)/usr/lib/bmx7_sms.so
171 endef
172
173 define Package/bmx7-tun/install
174         $(INSTALL_DIR) $(1)/usr/lib
175         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_tun/bmx7_tun.so $(1)/usr/lib/bmx7_tun.so
176 endef
177
178 define Package/bmx7-table/install
179         $(INSTALL_DIR) $(1)/usr/lib
180         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_table/bmx7_table.so $(1)/usr/lib/bmx7_table.so
181 endef
182
183
184 $(eval $(call BuildPackage,bmx7))
185 $(eval $(call BuildPackage,bmx7-uci-config))
186 $(eval $(call BuildPackage,bmx7-iwinfo))
187 $(eval $(call BuildPackage,bmx7-topology))
188 $(eval $(call BuildPackage,bmx7-json))
189 $(eval $(call BuildPackage,bmx7-sms))
190 $(eval $(call BuildPackage,bmx7-table))
191 $(eval $(call BuildPackage,bmx7-tun))