summaryrefslogtreecommitdiffstats
path: root/make/iptables.mk
diff options
context:
space:
mode:
Diffstat (limited to 'make/iptables.mk')
-rw-r--r--make/iptables.mk40
1 files changed, 40 insertions, 0 deletions
diff --git a/make/iptables.mk b/make/iptables.mk
new file mode 100644
index 000000000..d7f15ae8d
--- /dev/null
+++ b/make/iptables.mk
@@ -0,0 +1,40 @@
+#############################################################
+#
+# iptables
+#
+#############################################################
+IPTABLES_SOURCE_URL=ftp://ftp.netfilter.org/pub/iptables
+IPTABLES_SOURCE=iptables-1.2.7a.tar.bz2
+IPTABLES_BUILD_DIR=$(BUILD_DIR)/iptables-1.2.7a
+
+$(DL_DIR)/$(IPTABLES_SOURCE):
+ $(WGET) -P $(DL_DIR) $(IPTABLES_SOURCE_URL)/$(IPTABLES_SOURCE)
+
+$(IPTABLES_BUILD_DIR)/.unpacked: $(DL_DIR)/$(IPTABLES_SOURCE)
+ bzcat $(DL_DIR)/$(IPTABLES_SOURCE) | tar -C $(BUILD_DIR) -xvf -
+ touch $(IPTABLES_BUILD_DIR)/.unpacked
+
+$(IPTABLES_BUILD_DIR)/.configured: $(IPTABLES_BUILD_DIR)/.unpacked
+ perl -pi -e "s@shell.*YES.*@shell grep -q '__UCLIBC_HAS_IPV6__.*1' \
+ $(BUILD_DIR)/uClibc/include/bits/uClibc_config.h && \
+ echo YES\), YES\)@;" $(IPTABLES_BUILD_DIR)/Makefile
+ touch $(IPTABLES_BUILD_DIR)/.configured
+
+$(IPTABLES_BUILD_DIR)/iptables: $(IPTABLES_BUILD_DIR)/.configured
+ $(MAKE) -C $(IPTABLES_BUILD_DIR) KERNEL_DIR=$(BUILD_DIR)/linux CC=$(TARGET_CC)
+
+$(TARGET_DIR)/sbin/iptables: $(IPTABLES_BUILD_DIR)/iptables
+ # Copy iptables
+ cp -af $(IPTABLES_BUILD_DIR)/iptables $(TARGET_DIR)/sbin/
+ cp -af $(IPTABLES_BUILD_DIR)/iptables-save $(TARGET_DIR)/sbin/
+ cp -af $(IPTABLES_BUILD_DIR)/iptables-restore $(TARGET_DIR)/sbin/
+
+iptables: $(TARGET_DIR)/sbin/iptables
+
+iptables-clean:
+ $(MAKE) DESTDIR=$(TARGET_DIR) CC=$(TARGET_CC) -C $(IPTABLES_BUILD_DIR) uninstall
+ -$(MAKE) -C $(IPTABLES_BUILD_DIR) clean
+
+iptables-dirclean:
+ rm -rf $(IPTABLES_BUILD_DIR)
+