1LIBNAME=sip_stack.a
2
3SRCS=$(wildcard *.cpp)
4HDRS=$(SRCS:.cpp=.h)
5OBJS=$(SRCS:.cpp=.o)
6DEPS=$(SRCS:.cpp=.d)
7
8.PHONY: all
9all: $(LIBNAME)
10
11.PHONY: clean
12clean:
13	rm -f $(OBJS) $(DEPS) $(LIBNAME)
14
15COREPATH = ..
16include $(COREPATH)/../Makefile.defs
17
18CPPFLAGS += -I$(COREPATH) -fno-strict-aliasing
19
20# RAW_IPHDR_INC_AUTO_FRAG (raw_sock.c):
21# 	Fragmentation is done by the
22#	kernel (no need to do it in
23#	userspace).
24#
25# RAW_IPHDR_IP_HBO (raw_sock.c):
26# 	Byte order of ip offset and
27#       total length expected by the
28#       kernel.
29#
30ifeq ($(OS), freebsd)
31	CPPFLAGS += -DRAW_IPHDR_INC_AUTO_FRAG -DRAW_IPHDR_IP_HBO
32else
33ifeq ($(OS), openbsd)
34	CPPFLAGS += -DRAW_IPHDR_INC_AUTO_FRAG
35else
36ifeq ($(OS), netbsd)
37	CPPFLAGS += -DRAW_IPHDR_INC_AUTO_FRAG -DRAW_IPHDR_IP_HBO
38else
39ifeq ($(OS), macosx)
40	CPPFLAGS += -DRAW_IPHDR_INC_AUTO_FRAG -DRAW_IPHDR_IP_HBO
41endif
42endif
43endif
44endif
45
46# implicit rules
47%.o : %.cpp $(COREPATH)/../Makefile.defs
48	$(CXX) -MMD -c -o $@ $< $(CPPFLAGS) $(CXXFLAGS)
49
50$(LIBNAME): $(OBJS) $(COREPATH)/../Makefile.defs
51	@echo ""
52	@echo "making $(LIBNAME)"
53	$(AR) rvs $(LIBNAME) $(OBJS)
54
55-include $(DEPS)
56
57
58