1#configureable stuff
2#PREFIX ?= /usr/local
3BINDIR=${DESTDIR}${PREFIX}/bin
4MANDIR=${DESTDIR}${PREFIX}/man/man1
5LIBDIR=${DESTDIR}${PREFIX}/lib/sendip
6#For most systems, this works
7INSTALL?=install
8#For Solaris, you may need
9#INSTALL=/usr/ucb/install
10
11CFLAGS+=	-fPIC -fsigned-char -pipe -Wall -Wpointer-arith -Wwrite-strings \
12			-Wstrict-prototypes -Wnested-externs -Winline -Wcast-align \
13			-DSENDIP_LIBS=\"${LIBDIR}\"
14#-Wcast-align causes problems on solaris, but not serious ones
15LDFLAGS+=	-rdynamic -lm
16#LDFLAGS_SOLARIS= -g -lsocket -lnsl -lm
17LDFLAGS_SOLARIS= -g -lsocket -lnsl -lm -ldl
18LDFLAGS_LINUX= -g  -rdynamic -ldl -lm
19LIBCFLAGS= -shared
20#CC=	gcc
21
22PROGS= sendip
23BASEPROTOS= ipv4.so ipv6.so
24IPPROTOS= icmp.so tcp.so udp.so
25UDPPROTOS= rip.so ripng.so ntp.so
26TCPPROTOS= bgp.so
27PROTOS= $(BASEPROTOS) $(IPPROTOS) $(UDPPROTOS) $(TCPPROTOS)
28GLOBALOBJS= csum.o compact.o
29
30all:	$(GLOBALOBJS) sendip $(PROTOS) sendip.1 sendip.spec
31
32#there has to be a nice way to do this
33sendip:	sendip.o	gnugetopt.o gnugetopt1.o compact.o
34	sh -c "if [ `uname` = Linux ] ; then \
35$(CC) -o $@ $(LDFLAGS_LINUX) $(CFLAGS) $+ ; \
36elif [ `uname` = SunOS ] ; then \
37$(CC) -o $@ $(LDFLAGS_SOLARIS) $(CFLAGS) $+ ;\
38else \
39$(CC) -o $@ $(LDFLAGS) $(CFLAGS) $+ ; \
40fi"
41
42sendip.1:	help2man $(PROGS) $(PROTOS) VERSION
43			./help2man -n "Send arbitrary IP packets" -N >sendip.1
44
45sendip.spec:	sendip.spec.in VERSION
46			echo -n '%define ver ' >sendip.spec
47			cat VERSION >>sendip.spec
48			cat sendip.spec.in >>sendip.spec
49
50%.so: %.c $(GLOBALOBJS)
51			$(CC) -o $@ $(CFLAGS) $(LIBCFLAGS) $+
52
53.PHONY:	clean install
54
55clean:
56			rm -f *.o *~ *.so $(PROTOS) $(PROGS) core gmon.out
57
58veryclean:
59			make clean
60			rm -f sendip.spec sendip.1
61
62install:		all
63			[ -d $(LIBDIR) ] || mkdir -p $(LIBDIR)
64			[ -d $(BINDIR) ] || mkdir -p $(BINDIR)
65			[ -d $(MANDIR) ] || mkdir -p $(MANDIR)
66			$(INSTALL) -m 755 $(PROGS) $(BINDIR)
67			$(INSTALL) -m 644 sendip.1 $(MANDIR)
68			$(INSTALL) -m 755 $(PROTOS) $(LIBDIR)
69