Merge pull request #507 from aparcar/bmx7-7.1.1
[feed/routing.git] / bmx7 / Makefile
1 include $(TOPDIR)/rules.mk
2
3 PKG_NAME:=bmx7
4 PKG_VERSION:=7.1.1
5 PKG_RELEASE:=1
6
7 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
8 PKG_SOURCE_URL:=https://codeload.github.com/bmx-routing/bmx7/tar.gz/v$(PKG_VERSION)?
9 PKG_HASH:=5f88df1c95e5cb842a6016bb1604e3e7f6097c63c5c9916edc3c84e96d4f5f65
10 PKG_UNPACK:=$(TAR) -C $(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION) \
11 --strip-components=2 -xzf $(DL_DIR)/$(PKG_SOURCE) $(PKG_NAME)-$(PKG_VERSION)/src
12
13 PKG_MAINTAINER:=Axel Neumann <neumann@cgws.de>
14 PKG_LICENSE:=GPL-2.0-or-later
15 PKG_LICENSE_FILES:=LICENSE
16
17 PKG_BUILD_PARALLEL:=1
18
19 include $(INCLUDE_DIR)/package.mk
20
21 TARGET_CFLAGS += $(FPIC)
22
23 MAKE_ARGS += EXTRA_CFLAGS="$(TARGET_CFLAGS) -I. -I$(STAGING_DIR)/usr/include -DCRYPTLIB=MBEDTLS_2_8_0 -DCORE_LIMIT=20000 -DTRAFFIC_DUMP -DNO_TRACE_FUNCTION_CALLS -DBMX7_LIB_IWINFO"
24
25 MAKE_ARGS += \
26 EXTRA_LDFLAGS="$(TARGET_LDFLAGS) -L$(STAGING_DIR)/usr/lib -liwinfo" \
27 GIT_REV="$(PKG_REV)" \
28 CC="$(TARGET_CC)" \
29 INSTALL_DIR="$(PKG_INSTALL_DIR)" \
30 build_all
31
32 define Package/bmx7/Default
33 SECTION:=net
34 CATEGORY:=Network
35 SUBMENU:=Routing and Redirection
36 TITLE:=BMX7 layer 3 routing daemon
37 URL:=https://github.com/bmx-routing/bmx7
38 DEPENDS:=+zlib +libmbedtls +libiwinfo
39 endef
40
41 define Package/bmx7/description
42 BMX7 routing daemon supporting securely-entrusted IPv6 (and IPv4in6) routing
43 endef
44
45 define Package/bmx7
46 $(call Package/bmx7/Default)
47 MENU:=1
48 endef
49
50 define Package/bmx7-uci-config
51 $(call Package/bmx7/Default)
52 DEPENDS:=bmx7 +libuci
53 TITLE:=configuration plugin based on uci (recommended!)
54 endef
55
56 define Package/bmx7-iwinfo
57 $(call Package/bmx7/Default)
58 DEPENDS:=bmx7 +libiwinfo
59 TITLE:=link characteristics plugin via libiwinfo (recommended!)
60 endef
61
62 define Package/bmx7-topology
63 $(call Package/bmx7/Default)
64 DEPENDS:=bmx7
65 TITLE:=topology plugin
66 endef
67
68 define Package/bmx7-json
69 $(call Package/bmx7/Default)
70 DEPENDS:=bmx7 +libjson-c
71 TITLE:=json plugin based on json-c
72 endef
73
74 define Package/bmx7-sms
75 $(call Package/bmx7/Default)
76 DEPENDS:=bmx7
77 TITLE:=sms plugin
78 endef
79
80 define Package/bmx7-tun
81 $(call Package/bmx7/Default)
82 DEPENDS:=bmx7 +kmod-ip6-tunnel +kmod-iptunnel6 +kmod-tun
83 TITLE:=ipip-based tunnel plugin (recommended!)
84 endef
85
86 define Package/bmx7-table
87 $(call Package/bmx7/Default)
88 DEPENDS:=bmx7 +bmx7-tun
89 TITLE:=plugin to announce routes from tables via tunnels
90 endef
91
92 define Build/Configure
93 mkdir -p $(PKG_INSTALL_DIR)
94 endef
95
96 define Build/Compile
97 $(MAKE) -C $(PKG_BUILD_DIR) $(MAKE_ARGS)
98 endef
99
100 define Package/bmx7/install
101 $(INSTALL_DIR) $(1)/usr/sbin $(1)/etc/config $(1)/etc/init.d
102 $(INSTALL_BIN) $(PKG_BUILD_DIR)/bmx7 $(1)/usr/sbin/bmx7
103 endef
104
105 define Package/bmx7/postinst
106 #!/bin/sh
107 # # check if we are on real system
108 if [ -z "$${IPKG_INSTROOT}" ]; then
109 if [ -f /etc/sysupgrade.conf ] && ! grep bmx7 /etc/sysupgrade.conf; then
110 echo /etc/bmx7 >> /etc/sysupgrade.conf
111 fi
112 fi
113 endef
114
115
116 define Package/bmx7-uci-config/conffiles
117 /etc/config/bmx7
118 /etc/bmx7
119 endef
120
121 define Package/bmx7-uci-config/install
122 $(INSTALL_DIR) $(1)/usr/lib $(1)/etc/config $(1)/etc/init.d
123 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_uci_config/bmx7_config.so $(1)/usr/lib/bmx7_config.so
124 $(INSTALL_BIN) ./files/etc/init.d/bmx7 $(1)/etc/init.d/bmx7
125 $(INSTALL_DATA) ./files/etc/config/bmx7 $(1)/etc/config/bmx7
126 endef
127
128 define Package/bmx7-iwinfo/install
129 $(INSTALL_DIR) $(1)/usr/lib
130 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_iwinfo/bmx7_iwinfo.so $(1)/usr/lib/bmx7_iwinfo.so
131 endef
132
133 define Package/bmx7-topology/install
134 $(INSTALL_DIR) $(1)/usr/lib
135 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_topology/bmx7_topology.so $(1)/usr/lib/bmx7_topology.so
136 endef
137
138 define Package/bmx7-json/install
139 $(INSTALL_DIR) $(1)/usr/lib
140 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_json/bmx7_json.so $(1)/usr/lib/bmx7_json.so
141 endef
142
143 define Package/bmx7-sms/install
144 $(INSTALL_DIR) $(1)/usr/lib
145 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_sms/bmx7_sms.so $(1)/usr/lib/bmx7_sms.so
146 endef
147
148 define Package/bmx7-tun/install
149 $(INSTALL_DIR) $(1)/usr/lib
150 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_tun/bmx7_tun.so $(1)/usr/lib/bmx7_tun.so
151 endef
152
153 define Package/bmx7-table/install
154 $(INSTALL_DIR) $(1)/usr/lib
155 $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/bmx7_table/bmx7_table.so $(1)/usr/lib/bmx7_table.so
156 endef
157
158 $(eval $(call BuildPackage,bmx7))
159 $(eval $(call BuildPackage,bmx7-uci-config))
160 $(eval $(call BuildPackage,bmx7-iwinfo))
161 $(eval $(call BuildPackage,bmx7-topology))
162 $(eval $(call BuildPackage,bmx7-json))
163 $(eval $(call BuildPackage,bmx7-sms))
164 $(eval $(call BuildPackage,bmx7-table))
165 $(eval $(call BuildPackage,bmx7-tun))