Major changes:
[ipfw.git] / ipfw / Makefile
1 #
2 # $Id$
3 #
4 # GNUMakefile to build the userland part of ipfw on Linux
5 #
6 # enable extra debugging information
7 # Do not set with = or := so we can inherit from the caller
8 $(warning Building userland ipfw for $(VER))
9 EXTRA_CFLAGS += -O1
10 # comment this on planetlab
11 # EXTRA_CFLAGS += -Wall -Werror
12 EXTRA_CFLAGS += -include ../glue.h
13 EXTRA_CFLAGS += -I ./include
14
15 ifneq ($(VER),openwrt)
16 OSARCH := $(shell uname)
17 ifeq ($(OSARCH),Linux)
18     EXTRA_CFLAGS += -D__BSD_VISIBLE
19 else
20     HAVE_NAT := $(shell grep O_NAT /usr/include/netinet/ip_fw.h)
21     # EXTRA_CFLAGS += ...
22 endif
23 endif # !openwrt
24
25 CFLAGS += $(EXTRA_CFLAGS)
26 # Location of OS headers and libraries. After our stuff.
27 USRDIR?= /usr
28 CFLAGS += -I$(USRDIR)/include
29 LDFLAGS += -L$(USRDIR)/lib
30
31 OBJS = ipfw2.o dummynet.o main.o ipv6.o altq.o qsort_r.o
32 ifneq ($(HAVE_NAT),)
33     OBJS += nat.o
34     EXTRA_CFLAGS += -DHAVE_NAT
35 endif
36 OBJS += glue.o
37
38 all: ipfw
39         echo "VER is $(VER)"
40
41 ipfw: $(OBJS)
42         $(CC) $(LDFLAGS) -o $@ $^
43
44 $(OBJS) : ipfw2.h ../glue.h
45
46 clean distclean:
47         -rm -f $(OBJS) ipfw