bird1-openwrt: use a single Makefile for IPv4 and IPv6 packages
[feed/routing.git] / bird1-openwrt / Makefile
1 # Copyright (C) 2014-2017 Eloi Carbo <eloicaso@openmailbox.org>
2 # Copyright (C) 2022 Roger Pueyo Centelles <roger.pueyo@guifi.net>
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16 #
17
18 include $(TOPDIR)/rules.mk
19
20 BIRD1_PKG := bird1
21 BIRD1_IPV4_PKG := $(BIRD1_PKG)-ipv4
22 BIRD1_IPV6_PKG := $(BIRD1_PKG)-ipv6
23 BIRD4 := bird4
24 BIRD6 := bird6
25
26 PKG_NAME := $(BIRD1_PKG)-openwrt
27 PKG_IPV4_NAME := $(BIRD1_IPV4_PKG)-openwrt
28 PKG_IPV6_NAME := $(BIRD1_IPV6_PKG)-openwrt
29 PKG_VERSION := 0.3
30 PKG_RELEASE := 2
31 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
32 PKG_LICENSE := GPL-3.0+
33
34 PKG_UCI_NAME := $(BIRD1_PKG)-uci
35 PKG_LUCI_NAME := $(BIRD1_PKG)-luci
36 PKG_IPV4_UCI_NAME := $(BIRD1_IPV4_PKG)-uci
37 PKG_IPV6_UCI_NAME := $(BIRD1_IPV6_PKG)-uci
38 PKG_IPV4_LUCI_NAME := luci-app-$(BIRD1_IPV4_PKG)
39 PKG_IPV6_LUCI_NAME := luci-app-$(BIRD1_IPV6_PKG)
40
41 include $(INCLUDE_DIR)/package.mk
42
43 define Build/Prepare
44 endef
45
46 define Build/Compile
47 endef
48
49 define Package/$(PKG_UCI_NAME)/Default
50 TITLE:=The BIRD UCI module (v1.6)
51 SECTION:=net
52 CATEGORY:=Network
53 SUBMENU:=Routing and Redirection
54 MAINTAINER:=Roger Pueyo Centelles <roger.pueyo@guifi.net>
55 URL:=https://github.com/openwrt/bird1-openwrt/
56 DEPENDS:=+libuci +uci
57 endef
58
59 define Package/$(PKG_LUCI_NAME)/Default
60 TITLE:=LuCI support for BIRD (v1.6)
61 SECTION:=luci
62 CATEGORY:=LuCI
63 SUBMENU:=3. Applications
64 MAINTAINER:=Roger Pueyo Centelles <roger.pueyo@guifi.net>
65 URL:=https://github.com/openwrt/bird1-openwrt/
66 DEPENDS:=+luci-base +luci-compat
67 endef
68
69 define Package/$(PKG_UCI_NAME)/description
70 $(BIRD1_PKG) UCI integration module
71 endef
72
73 define Package/$(PKG_LUCI_NAME)/description
74 $(BIRD1_PKG) application for LuCI
75 endef
76
77 define Package/$(PKG_IPV4_UCI_NAME)
78 $(call Package/$(PKG_UCI_NAME)/Default)
79 TITLE+= (IPv4)
80 DEPENDS+= +$(BIRD1_IPV4_PKG)
81 endef
82
83 define Package/$(PKG_IPV6_UCI_NAME)
84 $(call Package/$(PKG_UCI_NAME)/Default)
85 TITLE+= (IPv6)
86 DEPENDS+= +$(BIRD1_IPV6_PKG)
87 endef
88
89 define Package/$(PKG_IPV4_LUCI_NAME)
90 $(call Package/$(PKG_LUCI_NAME)/Default)
91 TITLE+= (IPv4)
92 DEPENDS+= +$(PKG_IPV4_UCI_NAME)
93 endef
94
95 define Package/$(PKG_IPV6_LUCI_NAME)
96 $(call Package/$(PKG_LUCI_NAME)/Default)
97 TITLE+= (IPv6)
98 DEPENDS+= +$(PKG_IPV6_UCI_NAME)
99 endef
100
101 define Package/$(PKG_IPV4_UCI_NAME)/conffiles
102 /etc/config/$(BIRD4)
103 endef
104
105 define Package/$(PKG_IPV6_UCI_NAME)/conffiles
106 /etc/config/$(BIRD6)
107 endef
108
109 define Package/$(PKG_IPV4_UCI_NAME)/install
110 $(INSTALL_DIR) $(1)/etc/$(BIRD4)/init.d
111 $(INSTALL_DIR) $(1)/etc/config
112 $(INSTALL_DIR) $(1)/etc/$(BIRD4)/filters
113 $(INSTALL_DIR) $(1)/etc/$(BIRD4)/functions
114 $(INSTALL_BIN) ./$(PKG_IPV4_NAME)/src/init.d/$(BIRD4)* $(1)/etc/$(BIRD4)/init.d/
115 $(CP) ./$(PKG_IPV4_NAME)/src/uci-defaults/* $(1)/etc/$(BIRD4)/init.d/
116 $(INSTALL_CONF) ./$(PKG_IPV4_NAME)/src/config/$(BIRD4) $(1)/etc/config/
117 endef
118
119 define Package/$(PKG_IPV6_UCI_NAME)/install
120 $(INSTALL_DIR) $(1)/etc/$(BIRD6)/init.d
121 $(INSTALL_DIR) $(1)/etc/config
122 $(INSTALL_DIR) $(1)/etc/$(BIRD6)/filters
123 $(INSTALL_DIR) $(1)/etc/$(BIRD6)/functions
124 $(INSTALL_BIN) ./$(PKG_IPV6_NAME)/src/init.d/$(BIRD6)* $(1)/etc/$(BIRD6)/init.d/
125 $(CP) ./$(PKG_IPV6_NAME)/src/uci-defaults/* $(1)/etc/$(BIRD6)/init.d/
126 $(INSTALL_CONF) ./$(PKG_IPV6_NAME)/src/config/$(BIRD6) $(1)/etc/config/
127 endef
128
129 define Package/$(PKG_IPV4_UCI_NAME)/postinst
130 #!/bin/sh
131 if [ -z "$${IPKG_INSTROOT}" ]; then
132 ( . /etc/$(BIRD4)/init.d/bird-uci-install-init.d $(BIRD4) ) && rm -f /etc/$(BIRD4)/init.d/bird-uci-install-init.d
133 ( . /etc/$(BIRD4)/init.d/99-relocate-filters $(BIRD4) ) && rm -f /etc/$(BIRD4)/init.d/99-relocate-filters
134 if [ -f /etc/sysupgrade.conf ] && ! grep $(BIRD4) /etc/sysupgrade.conf; then
135 echo /etc/config/$(BIRD4) >> /etc/sysupgrade.conf
136 echo /etc/$(BIRD4)/filters/ >> /etc/sysupgrade.conf
137 echo /etc/$(BIRD4)/functions/ >> /etc/sysupgrade.conf
138 fi
139 fi
140 endef
141
142 define Package/$(PKG_IPV6_UCI_NAME)/postinst
143 #!/bin/sh
144 if [ -z "$${IPKG_INSTROOT}" ]; then
145 ( . /etc/$(BIRD6)/init.d/bird-uci-install-init.d $(BIRD6) ) && rm -f /etc/$(BIRD6)/init.d/bird-uci-install-init.d
146 ( . /etc/$(BIRD6)/init.d/99-relocate-filters $(BIRD6) ) && rm -f /etc/$(BIRD6)/init.d/99-relocate-filters
147 if [ -f /etc/sysupgrade.conf ] && ! grep $(BIRD6) /etc/sysupgrade.conf; then
148 echo /etc/config/$(BIRD6) >> /etc/sysupgrade.conf
149 echo /etc/$(BIRD6)/filters/ >> /etc/sysupgrade.conf
150 echo /etc/$(BIRD6)/functions/ >> /etc/sysupgrade.conf
151 fi
152 fi
153 endef
154
155 $(eval $(call BuildPackage,$(PKG_IPV4_UCI_NAME)))
156 $(eval $(call BuildPackage,$(PKG_IPV6_UCI_NAME)))
157
158 define Package/$(PKG_IPV4_LUCI_NAME)/install
159 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
160 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/$(BIRD4)/
161 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/$(BIRD4)/
162 $(CP) ./$(PKG_IPV4_NAME)/src/model/* $(1)/usr/lib/lua/luci/model/cbi/$(BIRD4)/
163 $(CP) ./$(PKG_IPV4_NAME)/src/controller/* $(1)/usr/lib/lua/luci/controller/
164 $(CP) ./$(PKG_IPV4_NAME)/src/view/* $(1)/usr/lib/lua/luci/view/$(BIRD4)/
165 endef
166
167 define Package/$(PKG_IPV6_LUCI_NAME)/install
168 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller/
169 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/$(BIRD6)/
170 $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/$(BIRD6)/
171 $(CP) ./$(PKG_IPV6_NAME)/src/model/* $(1)/usr/lib/lua/luci/model/cbi/$(BIRD6)/
172 $(CP) ./$(PKG_IPV6_NAME)/src/controller/* $(1)/usr/lib/lua/luci/controller/
173 $(CP) ./$(PKG_IPV6_NAME)/src/view/* $(1)/usr/lib/lua/luci/view/$(BIRD6)/
174 endef
175
176 $(eval $(call BuildPackage,$(PKG_IPV4_LUCI_NAME)))
177 $(eval $(call BuildPackage,$(PKG_IPV6_LUCI_NAME)))