Work on the radix code, added support to compile on OpenWRT,
[ipfw.git] / dummynet / Makefile
index 126c2ff..cac1958 100644 (file)
 #   O_TARGET   the link target, for openwrt
 #   EXTRA_CFLAGS as the name says... in openwrt
 #   EXTRA_CFLAGS is used in 2.6.22 module kernel compilation too
-#   KERNELPATH the path to the kernel sources or headers
+#   KERNELPATH the path to the kernel sources or headers
 #
 # Not sure about this (the name might be reserved)
 #   ipfw-cflags                our flags for building the module
 #
 # Other variables are only private and can be renamed. They include:
 #
-#   VER                linux version we are building for (2.4 2.6 or openwrt)
+#   VER                linux version we are building for (2.4 2.6 or openwrt)
 #---
 
 $(warning including dummynet/Makefile)
@@ -37,13 +37,14 @@ VER ?= 2.6
 obj-m := ipfw_mod.o
 
 # generic cflags used on all systems
+#ipfw-cflags += -DIPFW_HASHTABLES
 ipfw-cflags += -DIPFIREWALL_DEFAULT_TO_ACCEPT -DTRACE
 # _BSD_SOURCE enables __FAVOR_BSD (udp/tcp bsd structs instead of posix)
 ipfw-cflags += -D_BSD_SOURCE
-ipfw-cflags += -DKERNEL_MODULE  # build linux kernel module
+ipfw-cflags += -DKERNEL_MODULE # build linux kernel module
 # the two header trees for empty and override files
 ipfw-cflags += -I $(M)/include_e -I $(M)/include
-ipfw-cflags += -include $(M)/../glue.h  # headers
+ipfw-cflags += -include $(M)/../glue.h # headers
 
 $(warning "---- Building dummynet kernel module for Version $(VER)")
 # We have three sections for OpenWrt, Linux 2.4 and Linux 2.6
@@ -51,7 +52,7 @@ $(warning "---- Building dummynet kernel module for Version $(VER)")
 ifeq ($(VER),openwrt)
   M=.
   obj-y := ipfw2_mod.o bsd_compat.o \
-       in_cksum.o ip_dummynet.o ip_fw2.o ip_fw_pfil.o
+       in_cksum.o ip_dummynet.o ip_fw2.o ip_fw_pfil.o radix.o
   O_TARGET := ipfw_mod.o
 
   # xcflags-y is a temporary variable where we store build options
@@ -99,7 +100,7 @@ ifneq ($(shell echo $(VER)|grep '2.4'),)
 
   ccflags-y += -O1 -DLINUX_24
   CFLAGS = -DMODULE -D__KERNEL__ -nostdinc \
-        -isystem ${KERNELPATH}/include -isystem $(MYGCC_INCLUDE) ${ccflags-y}
+       -isystem ${KERNELPATH}/include -isystem $(MYGCC_INCLUDE) ${ccflags-y}
   # The Main target
 all: mod24
 
@@ -133,9 +134,9 @@ ipfw_mod-y = $(IPFW_SRCS:%.c=%.o)
 
 # Original ipfw and dummynet sources + FreeBSD stuff,
 IPFW_SRCS = ip_fw2.c ip_dummynet.c ip_fw_pfil.c in_cksum.c
-
+IPFW_SRCS += radix.c 
 # Module glue and functions missing in linux
-IPFW_SRCS += ipfw2_mod.c bsd_compat.c
+IPFW_SRCS += ipfw2_mod.c bsd_compat.c hashtable.c
 
 # additional $(CC) flags
 ccflags-y += $(WARN)
@@ -148,34 +149,37 @@ $(obj-m): $(ipfw_mod-y)
        $(LD) $(LDFLAGS) -m elf_i386 -r -o $@ $^
 clean:
        -rm -f *.o *.ko Module.symvers *.mod.c
+       -rm -rf include_e
 
 distclean: clean
        -rm -f .*cmd modules.order opt_*
        -rm -rf .tmp_versions include_e
-       -rm -rf .ip_dummynet.o.d
+       -rm -rf .*.o.d
 
 # support to create empty dirs and files in include_e/
 # EDIRS is the list of directories, EFILES is the list of files.
 
 EDIRS= altq arpa machine net netinet netinet6 sys
 
-EFILES += opt_inet6.h opt_ipfw.h opt_ipsec.h opt_mac.h
+EFILES += opt_inet6.h opt_ipfw.h opt_ipsec.h opt_mpath.h
 EFILES += opt_mbuf_stress_test.h opt_param.h
 
 EFILES += altq/if_altq.h
 EFILES += arpa/inet.h
 EFILES += machine/in_cksum.h
-EFILES += net/ethernet.h net/netisr.h net/pf_mtag.h net/radix.h
+EFILES += net/ethernet.h net/netisr.h net/pf_mtag.h
+EFILES += net/vnet.h
 
 EFILES += netinet/ether.h netinet/icmp6.h netinet/if_ether.h
 EFILES += netinet/in.h netinet/in_pcb.h netinet/in_var.h
-EFILES +=  netinet/ip_carp.h netinet/ip_var.h netinet/pim.h
+EFILES += netinet/ip_carp.h netinet/ip_var.h netinet/pim.h
 EFILES += netinet/sctp.h netinet/tcp_timer.h netinet/tcpip.h
 EFILES += netinet/udp_var.h
 
 EFILES += netinet6/ip6_var.h
 
-EFILES += sys/_lock.h sys/_mutex.h sys/jail.h
+EFILES += sys/_lock.h sys/_rwlock.h sys/_mutex.h sys/jail.h
+EFILES += sys/condvar.h sys/eventhandler.h sys/domain.h
 EFILES += sys/limits.h sys/lock.h sys/mutex.h sys/priv.h
 EFILES += sys/proc.h sys/rwlock.h sys/socket.h sys/socketvar.h
 EFILES += sys/sysctl.h sys/time.h sys/ucred.h
@@ -188,3 +192,6 @@ include_e:
        -@(cd $(M)/include_e; mkdir -p $(EDIRS); touch $(EFILES) )
 
 endif # !openwrt
+
+test_radix: test_radix.o radix.o
+test_radix: CFLAGS=-Wall -Werror -O1