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