2 # Copyright (C) 2009-2016 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
7 include $(TOPDIR)/rules.mk
13 PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
14 PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
15 PKG_MD5SUM:=4c92ec3548a2a120243879b6ef7046dd
16 PKG_BUILD_DEPENDS:=libncurses libreadline
17 PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
21 include $(INCLUDE_DIR)/package.mk
23 define Package/bird/Default
24 TITLE:=The BIRD Internet Routing Daemon
25 URL:=http://bird.network.cz/
29 define Package/birdc/Default
30 TITLE:=The BIRD command-line client
31 URL:=http://bird.network.cz/
32 DEPENDS:= +libreadline +libncurses
35 define Package/birdcl/Default
36 TITLE:=The BIRD lightweight command-line client
37 URL:=http://bird.network.cz/
40 define Package/bird/Default/description1
41 BIRD is an internet routing daemon which manages TCP/IP routing tables
42 with support of modern routing protocols, easy to use configuration
43 interface and powerful route filtering language. It is lightweight and
44 efficient and therefore appropriate for small embedded routers.
48 define Package/bird/Default/description2
49 In BGP, BIRD supports communities, multiprotocol extensions, MD5
50 authentication, 32bit AS numbers and could act as a route server or a
51 route reflector. BIRD also supports multiple RIBs, multiple kernel
52 routing tables and redistribution between the protocols with a powerful
57 define Package/bird/Default/description3
58 This is a BIRD command-line client. It is used to send commands to BIRD,
59 commands can perform simple actions such as enabling/disabling of
60 protocols, telling BIRD to show various information, telling it to show
61 a routing table filtered by a filter, or asking BIRD to reconfigure.
63 Unless you can't afford dependency on ncurses and readline, you
64 should install BIRD command-line client together with BIRD.
68 define Package/bird/Default/description4
69 This is a BIRD lightweight command-line client. It is used to send commands to BIRD,
70 commands can perform simple actions such as enabling/disabling of
71 protocols, telling BIRD to show various information, telling it to show
72 a routing table filtered by a filter, or asking BIRD to reconfigure.
77 $(call Package/bird/Default)
80 SUBMENU:=Routing and Redirection
85 $(call Package/birdc/Default)
88 SUBMENU:=Routing and Redirection
93 define Package/birdcl4
94 $(call Package/birdcl/Default)
97 SUBMENU:=Routing and Redirection
103 $(call Package/bird/Default)
106 SUBMENU:=Routing and Redirection
110 define Package/birdc6
111 $(call Package/birdc/Default)
114 SUBMENU:=Routing and Redirection
119 define Package/birdcl6
120 $(call Package/birdcl/Default)
123 SUBMENU:=Routing and Redirection
128 define Package/bird4/description
129 $(call Package/bird/Default/description1)
130 This is IPv4 version of BIRD, it supports OSPFv2, RIPv2 and BGP
133 $(call Package/bird/Default/description2)
136 define Package/birdc4/description
137 $(call Package/bird/Default/description1)
138 $(call Package/bird/Default/description3)
141 define Package/birdcl4/description
142 $(call Package/bird/Default/description1)
143 $(call Package/bird/Default/description4)
146 define Package/bird6/description
147 $(call Package/bird/Default/description1)
148 This is IPv6 version of BIRD, it supports OSPFv3, RIPng and BGP
151 $(call Package/bird/Default/description2)
154 define Package/birdc6/description
155 $(call Package/bird/Default/description1)
156 $(call Package/bird/Default/description3)
159 define Package/birdcl6/description
160 $(call Package/bird/Default/description1)
161 $(call Package/bird/Default/description4)
164 CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"
166 TARGET_CFLAGS+=-std=gnu89
168 define Build/Template
170 $(STAMP_BUILT)-$(2): $(STAMP_PREPARED)
171 $(call Build/Configure/Default,$(3))
172 $(call Build/Compile/Default,)
173 ( cd $(PKG_BUILD_DIR); mv -f bird bird$(2); mv -f birdc birdc$(2); mv -f birdcl birdcl$(2) )
174 -$(MAKE) -C $(PKG_BUILD_DIR) clean
177 $(STAMP_BUILT): $(STAMP_BUILT)-$(2)
179 define Package/bird$(2)/install
180 $(INSTALL_DIR) $$(1)/usr/sbin
181 $(INSTALL_BIN) $$(PKG_BUILD_DIR)/bird$(2) $$(1)/usr/sbin/
182 $(INSTALL_DIR) $$(1)/etc
183 $(INSTALL_DATA) ./files/bird$(2).conf $$(1)/etc/
184 $(INSTALL_DIR) $$(1)/etc/init.d
185 $(INSTALL_BIN) ./files/bird$(2).init $$(1)/etc/init.d/bird$(2)
189 define Package/bird$(2)/conffiles
193 define Package/birdc$(2)/install
194 $(INSTALL_DIR) $$(1)/usr/sbin
195 $(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdc$(2) $$(1)/usr/sbin/
198 define Package/birdcl$(2)/install
199 $(INSTALL_DIR) $$(1)/usr/sbin
200 $(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdcl$(2) $$(1)/usr/sbin/
206 $(eval $(call Build/Template,bird4,4, --disable-ipv6))
207 $(eval $(call Build/Template,bird6,6, --enable-ipv6))
209 $(eval $(call BuildPackage,bird4))
210 $(eval $(call BuildPackage,birdc4))
211 $(eval $(call BuildPackage,birdcl4))
212 $(eval $(call BuildPackage,bird6))
213 $(eval $(call BuildPackage,birdc6))
214 $(eval $(call BuildPackage,birdcl6))