@@ -1 +1,2 @@
-SUBDIRS = classifier generator ipsec packet time timer traffic_mgmt l2fwd_simple
+SUBDIRS = classifier generator ipsec packet time timer traffic_mgmt \
+ l2fwd_simple ipfw/ipfw
new file mode 100644
@@ -0,0 +1,43 @@
+#include $(top_srcdir)/example/Makefile.inc
+
+OBJDIR=objs
+# ipfw and uipfw are built in subdirs
+INCDIRS = -I ../$(OBJDIR)/include_e -DEMULATE_SYSCTL
+INCDIRS += -I ../sys -I ../extra/sys -I ../extra/sys/contrib/pf
+
+OBJPATH = ./$(OBJDIR)
+
+E_CFLAGS = $(INCDIRS)
+E_CFLAGS += -include ../extra/glue.h # headers
+E_CFLAGS += -include ../extra/missing.h # headers
+E_CFLAGS += -O2 -Wall -Werror
+E_CFLAGS += -fno-strict-aliasing
+E_CFLAGS += -Wno-pointer-arith
+
+E_CFLAGS += -DUSERSPACE # communicate through userspace
+E_CFLAGS += -D__BSD_VISIBLE
+E_CFLAGS += -DNEED_STRTONUM -DNEED_SYSCTLBYNAME -DNEED_ROUNDUP2
+E_CFLAGS += -DNEED_SIN_LEN
+E_CFLAGS += -Wno-unused-but-set-variable
+E_CFLAGS += -Wno-unused
+
+AM_CFLAGS = $(E_CFLAGS)
+
+AM_LDFLAGS += -lutil
+
+bin_PROGRAMS = odp_ipfw$(EXEEXT)
+odp_ipfw_LDFLAGS = $(AM_LDFLAGS) -static
+odp_ipfw_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example
+
+noinst_HEADERS = \
+ $(top_srcdir)/example/example_debug.h
+
+dist_odp_ipfw_SOURCES = ipfw2.c \
+ dummynet.c \
+ main.c \
+ ipv6.c \
+ altq.c \
+ tables.c \
+ ../extra/expand_number.c \
+ ../extra/humanize_number.c \
+ ../extra/glue.c
@@ -6,4 +6,5 @@ AC_CONFIG_FILES([example/classifier/Makefile
example/time/Makefile
example/timer/Makefile
example/traffic_mgmt/Makefile
- example/l2fwd_simple/Makefile])
+ example/l2fwd_simple/Makefile
+ example/ipfw/ipfw/Makefile])