# 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)
obj-m := ipfw_mod.o
# generic cflags used on all systems
+ipfw-cflags += -Dradix
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
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
# 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 new_glue.c
# additional $(CC) flags
ccflags-y += $(WARN)
$(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
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 += 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
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