Merge branch 'master' into bmx6_testing
[lede-routing/.git] / bmx6 / 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:=bmx6
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
34 PKG_REV:=3b70f29a2326c8e829c5f10334d9bd4bc6ccab79
35 PKG_VERSION:=r2013112701
36 PKG_RELEASE:=4
37
38 PKG_SOURCE_VERSION:=$(PKG_REV)
39 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
40 PKG_SOURCE:=$(PKG_SOURCE_SUBDIR).tar.gz
41 PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
42
43 include $(INCLUDE_DIR)/package.mk
44
45
46 TARGET_CFLAGS += $(FPIC)
47
48 MAKE_ARGS += \
49         EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DNO_DEBUG_ALL -DNO_DEBUG_DUMP" \
50         EXTRA_LDFLAGS="-L$(STAGING_DIR)/usr/lib " \
51         REVISION_VERSION="$(PKG_REV)" \
52         CC="$(TARGET_CC)" \
53         INSTALL_DIR="$(PKG_INSTALL_DIR)" \
54         STRIP="/bin/false" \
55         build_all
56
57 define Package/bmx6/Default
58   SECTION:=net
59   CATEGORY:=Network
60   SUBMENU:=Routing and Redirection
61   TITLE:=BMX6 layer 3 routing daemon
62   URL:=http://bmx6.net/
63   MAINTAINER:=Axel Neumann <neumann@cgws.de>
64   DEPENDS:=+kmod-ip6-tunnel +kmod-iptunnel6 +kmod-tun
65 endef
66
67 define Package/bmx6/description
68 BMX6 layer 3 routing daemon supporting IPv4, IPv6, and IPv4 over IPv6
69 endef
70
71 define Package/bmx6
72   $(call Package/bmx6/Default)
73   MENU:=1
74 endef
75
76 define Package/bmx6-uci-config
77   $(call Package/bmx6/Default)
78   DEPENDS:=bmx6 +libuci
79   TITLE:=configuration plugin based on uci (recommended!)
80 endef
81
82 define Package/bmx6-json
83   $(call Package/bmx6/Default)
84   DEPENDS:=bmx6 +libjson
85   TITLE:=json plugin based on jsonc
86 endef
87
88 define Package/bmx6-sms
89   $(call Package/bmx6/Default)
90   DEPENDS:=bmx6
91   TITLE:=sms plugin
92 endef
93
94 define Package/bmx6-quagga
95   $(call Package/bmx6/Default)
96   DEPENDS:=bmx6 +qmp-quagga @BROKEN
97   TITLE:=bmx6 quagga plugin to redistribute/export routes (needs manet/bmx6 patched quagga 0.99.21)
98 endef
99
100 define Package/bmx6-table
101   $(call Package/bmx6/Default)
102   DEPENDS:=bmx6
103   TITLE:=bmx6 table plugin to automatic announce routing-table routes via ip6ip tunnels
104 endef
105
106 define Build/Configure
107         mkdir -p $(PKG_INSTALL_DIR)
108 endef
109
110 define Build/Compile
111         $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
112 endef
113
114 define Package/bmx6/install
115         $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
116         $(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx6 $(1)/usr/sbin/bmx6
117 endef
118
119 define Package/bmx6-uci-config/conffiles
120 /etc/config/bmx6
121 endef
122
123 define Package/bmx6-uci-config/install
124         $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
125         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_uci_config/bmx6_config.so $(1)/usr/lib/bmx6_config.so
126         $(INSTALL_BIN) ./files/etc/init.d/bmx6 $(1)/etc/init.d/bmx6
127         $(INSTALL_DATA) ./files/etc/config/bmx6 $(1)/etc/config/bmx6
128 endef
129
130 define Package/bmx6-json/install
131         $(INSTALL_DIR) $(1)/usr/lib
132         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_json/bmx6_json.so $(1)/usr/lib/bmx6_json.so
133 endef
134
135 define Package/bmx6-sms/install
136         $(INSTALL_DIR) $(1)/usr/lib
137         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_sms/bmx6_sms.so $(1)/usr/lib/bmx6_sms.so
138 endef
139
140 define Package/bmx6-table/install
141         $(INSTALL_DIR) $(1)/usr/lib
142         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_table/bmx6_table.so $(1)/usr/lib/bmx6_table.so
143 endef
144
145 define Package/bmx6-quagga/install
146         $(INSTALL_DIR) $(1)/usr/lib
147         $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx6_quagga/bmx6_quagga.so $(1)/usr/lib/bmx6_quagga.so
148 endef
149
150 $(eval $(call BuildPackage,bmx6))
151 $(eval $(call BuildPackage,bmx6-uci-config))
152 $(eval $(call BuildPackage,bmx6-json))
153 $(eval $(call BuildPackage,bmx6-sms))
154 $(eval $(call BuildPackage,bmx6-quagga))
155 $(eval $(call BuildPackage,bmx6-table))