2 # Copyright (C) 2013 OpenWrt.org
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
8 include $(TOPDIR)/rules.mk
11 PKG_VERSION:=2013-06-05
12 PKG_RELEASE:=$(PKG_SOURCE_VERSION)
15 PKG_SOURCE_URL:=git://nbd.name/firewall3.git
16 PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
17 PKG_SOURCE_VERSION:=6e6a38ea87aebeaefe70869c226cadad0312f144
18 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
19 PKG_MAINTAINER:=Jo-Philipp Wich <jow@openwrt.org>
22 include $(INCLUDE_DIR)/package.mk
23 include $(INCLUDE_DIR)/kernel.mk
24 include $(INCLUDE_DIR)/cmake.mk
26 define Package/firewall
29 TITLE:=OpenWrt C Firewall
30 DEPENDS:=+libubox +libubus +libuci +libip4tc +IPV6:libip6tc +libxtables
33 define Package/firewall/description
34 This package provides a config-compatible C implementation of the UCI firewall.
37 define Package/firewall/conffiles
42 define Build/Configure
43 $(foreach file,$(lastword $(wildcard $(KERNEL_BUILD_DIR)/iptables-*/extensions/libext.a)),$(CP) $(file) $(PKG_BUILD_DIR)/libext.a)
44 $(foreach file,$(lastword $(wildcard $(KERNEL_BUILD_DIR)/iptables-*/extensions/libext4.a)),$(CP) $(file) $(PKG_BUILD_DIR)/libext4.a)
45 $(foreach file,$(lastword $(wildcard $(KERNEL_BUILD_DIR)/iptables-*/extensions/libext6.a)),$(CP) $(file) $(PKG_BUILD_DIR)/libext6.a)
46 $(call Build/Configure/Default)
49 TARGET_CFLAGS += -ffunction-sections -fdata-sections
50 TARGET_LDFLAGS += -Wl,--gc-sections
51 CMAKE_OPTIONS += $(if $(CONFIG_IPV6),,-DDISABLE_IPV6=1)
53 define Package/firewall/install
54 $(INSTALL_DIR) $(1)/sbin
55 $(INSTALL_BIN) $(PKG_BUILD_DIR)/firewall3 $(1)/sbin/fw3
56 $(INSTALL_DIR) $(1)/etc/init.d
57 $(INSTALL_BIN) ./files/firewall.init $(1)/etc/init.d/firewall
58 $(INSTALL_DIR) $(1)/etc/hotplug.d/iface
59 $(INSTALL_DATA) ./files/firewall.hotplug $(1)/etc/hotplug.d/iface/20-firewall
60 $(INSTALL_DIR) $(1)/etc/config/
61 $(INSTALL_DATA) ./files/firewall.config $(1)/etc/config/firewall
62 $(INSTALL_DIR) $(1)/etc/
63 $(INSTALL_DATA) ./files/firewall.user $(1)/etc/firewall.user
66 $(eval $(call BuildPackage,firewall))