1*41edb306SCy Schubert# 2*41edb306SCy Schubert# Copyright (C) 2012 by Darren Reed. 3*41edb306SCy Schubert# 4*41edb306SCy Schubert# See the IPFILTER.LICENCE file for details on licencing. 5*41edb306SCy Schubert# 6*41edb306SCy SchubertIPFT=ipft_ef.o ipft_hx.o ipft_pc.o ipft_sn.o ipft_td.o ipft_tx.o opt.o 7*41edb306SCy SchubertOBJS=ipsend.o ip.o ipsopt.o y.tab.o lex.yy.o 8*41edb306SCy SchubertROBJS=ipresend.o ip.o resend.o $(IPFT) 9*41edb306SCy SchubertTOBJS=iptest.o iptests.o ip.o 10*41edb306SCy SchubertBPF=sbpf.o 11*41edb306SCy SchubertNIT=snit.o 12*41edb306SCy SchubertSUNOS4=sock.o arp.o inet_addr.o 13*41edb306SCy SchubertBSD=sock.o 44arp.o 14*41edb306SCy SchubertLINUX=lsock.o slinux.o larp.o 15*41edb306SCy SchubertLINUXK= 16*41edb306SCy SchubertTOP=.. 17*41edb306SCy SchubertSUNOS5=dlcommon.o sdlpi.o arp.o inet_addr.o 18*41edb306SCy SchubertULTRIX=ultrix.o sock.o arp.o inet_addr.o 19*41edb306SCy SchubertHPUX=hpux.o sock.o arp.o inet_addr.o 20*41edb306SCy Schubert 21*41edb306SCy Schubert#CC=gcc 22*41edb306SCy SchubertDEBUG=-g 23*41edb306SCy SchubertCFLAGS=$(DEBUG) -I. -Iipf 24*41edb306SCy Schubert# 25*41edb306SCy SchubertMFLAGS="BINDEST=$(BINDEST)" "SBINDEST=$(SBINDEST)" "MANDIR=$(MANDIR)" \ 26*41edb306SCy Schubert "IPFLKM=$(IPFLKM)" \ 27*41edb306SCy Schubert "IPFLOG=$(IPFLOG)" "LOGFAC=$(LOGFAC)" "POLICY=$(POLICY)" \ 28*41edb306SCy Schubert "SOLARIS2=$(SOLARIS2)" "DEBUG=$(DEBUG)" "DCPU=$(CPU)" \ 29*41edb306SCy Schubert "CPUDIR=$(CPUDIR)" 30*41edb306SCy Schubert# 31*41edb306SCy Schubertall: 32*41edb306SCy Schubert @echo "Use one of these targets:" 33*41edb306SCy Schubert @echo " sunos4-nit (standard SunOS 4.1.x)" 34*41edb306SCy Schubert @echo " sunos4-bpf (SunOS4.1.x with BPF in the kernel)" 35*41edb306SCy Schubert @echo " bsd-bpf (4.4BSD variant with BPF in the kernel)" 36*41edb306SCy Schubert @echo " linux10 (Linux 1.0 kernels)" 37*41edb306SCy Schubert @echo " linux12 (Linux 1.2 kernels)" 38*41edb306SCy Schubert @echo " linux20 (Linux 2.0 kernels)" 39*41edb306SCy Schubert @echo " sunos5 (Solaris 2.x)" 40*41edb306SCy Schubert 41*41edb306SCy Schubertipf: 42*41edb306SCy Schubert -if [ ! -d iplang ] ; then ln -s ../iplang iplang; fi 43*41edb306SCy Schubert -if [ ! -d netinet ] ; then ln -s ../netinet netinet; fi 44*41edb306SCy Schubert -if [ ! -d ipf ] ; then ln -s .. ipf; fi 45*41edb306SCy Schubert 46*41edb306SCy Schuberty.tab.o: iplang/iplang_y.y 47*41edb306SCy Schubert -if [ -h iplang ] ; then \ 48*41edb306SCy Schubert (cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \ 49*41edb306SCy Schubert else \ 50*41edb306SCy Schubert (cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \ 51*41edb306SCy Schubert fi 52*41edb306SCy Schubert 53*41edb306SCy Schubertlex.yy.o: iplang/iplang_l.l 54*41edb306SCy Schubert -if [ -h iplang ] ; then \ 55*41edb306SCy Schubert (cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=../ipsend' ) \ 56*41edb306SCy Schubert else \ 57*41edb306SCy Schubert (cd iplang; ${MAKE} $(MFLAGS) 'DESTDIR=..' ) \ 58*41edb306SCy Schubert fi 59*41edb306SCy Schubert 60*41edb306SCy Schubert.c.o: 61*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c $< -o $@ 62*41edb306SCy Schubert 63*41edb306SCy Schubertinstall: 64*41edb306SCy Schubert -$(INSTALL) -cs -g wheel -m 755 -o root ipsend ipresend iptest $(BINDEST) 65*41edb306SCy Schubert 66*41edb306SCy Schubertbpf sunos4-bpf : 67*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \ 68*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll" 69*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \ 70*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 71*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(SUNOS4)" "CC=$(CC)" \ 72*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 73*41edb306SCy Schubert 74*41edb306SCy Schubertnit sunos4 sunos4-nit : 75*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \ 76*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll" 77*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \ 78*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 79*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(NIT) $(SUNOS4)" "CC=$(CC)" \ 80*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 81*41edb306SCy Schubert 82*41edb306SCy Schubertdlpi sunos5 : 83*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \ 84*41edb306SCy Schubert CFLAGS="$(CFLAGS) -Dsolaris -DIPSEND" "LIBS=-lsocket -lnsl" \ 85*41edb306SCy Schubert "LLIB=-ll" 86*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \ 87*41edb306SCy Schubert CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl" 88*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(SUNOS5)" "CC=$(CC)" \ 89*41edb306SCy Schubert CFLAGS="$(CFLAGS) -Dsolaris" "LIBS=-lsocket -lnsl" 90*41edb306SCy Schubert 91*41edb306SCy Schubertbsd-bpf : 92*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \ 93*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET -DIPSEND" "LLIB=-ll" 94*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \ 95*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 96*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(BPF) $(BSD)" "CC=$(CC)" \ 97*41edb306SCy Schubert "CFLAGS=$(CFLAGS) -DDOSOCKET" 98*41edb306SCy Schubert 99*41edb306SCy Schubertlinuxrev : 100*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \ 101*41edb306SCy Schubert CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET -DIPSEND" $(LINUXK) 102*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \ 103*41edb306SCy Schubert CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK) 104*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(LINUX)" "CC=$(CC)" \ 105*41edb306SCy Schubert CFLAGS="$(CFLAGS) $(INC) -DDOSOCKET" $(LINUXK) 106*41edb306SCy Schubert 107*41edb306SCy Schubertlinux10: 108*41edb306SCy Schubert make linuxrev 'LINUXK="LINUXK=-DLINUX=0100"' \ 109*41edb306SCy Schubert "INC=-I/usr/src/linux/include" "LLIB=-lfl" 110*41edb306SCy Schubert 111*41edb306SCy Schubertlinux12: 112*41edb306SCy Schubert make linuxrev 'LINUXK="LINUXK=-DLINUX=0102"' "INC=-I/usr/src/linux" \ 113*41edb306SCy Schubert "LLIB=-lfl" 114*41edb306SCy Schubert 115*41edb306SCy Schubertlinux20: 116*41edb306SCy Schubert make linuxrev 'LINUXK="LINUXK=-DLINUX=0200"' \ 117*41edb306SCy Schubert "INC=-I/usr/src/linux/include" "LLIB=-lfl" "ELIB=-lelf" 118*41edb306SCy Schubert 119*41edb306SCy Schubertultrix : 120*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \ 121*41edb306SCy Schubert CFLAGS="$(CFLAGS) -DIPSEND" "LIBS=" "LLIB=-ll" 122*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \ 123*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 124*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(ULTRIX)" "CC=$(CC)" \ 125*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 126*41edb306SCy Schubert 127*41edb306SCy Schuberthpux9 : 128*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 129*41edb306SCy Schubert CFLAGS="$(CFLAGS) -DIPSEND" "LIBS=" 130*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 131*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 132*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 133*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 134*41edb306SCy Schubert 135*41edb306SCy Schuberthpux11 : 136*41edb306SCy Schubert make ipsend "OBJS=$(OBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 137*41edb306SCy Schubert CFLAGS="$(CFLAGS) -DIPSEND" "LIBS=" 138*41edb306SCy Schubert make ipresend "ROBJS=$(ROBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 139*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 140*41edb306SCy Schubert make iptest "TOBJS=$(TOBJS)" "UNIXOBJS=$(HPUX)" "CC=$(CC)" \ 141*41edb306SCy Schubert CFLAGS="$(CFLAGS)" "LIBS=" 142*41edb306SCy Schubert 143*41edb306SCy Schubertipsend: ipf $(OBJS) $(UNIXOBJS) 144*41edb306SCy Schubert $(CC) $(OBJS) $(UNIXOBJS) -o $@ $(LIBS) $(LLIB) $(ELIB) 145*41edb306SCy Schubert 146*41edb306SCy Schubertipresend: $(ROBJS) $(UNIXOBJS) 147*41edb306SCy Schubert $(CC) $(ROBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB) 148*41edb306SCy Schubert 149*41edb306SCy Schubertiptest: $(TOBJS) $(UNIXOBJS) 150*41edb306SCy Schubert $(CC) $(TOBJS) $(UNIXOBJS) -o $@ $(LIBS) $(ELIB) 151*41edb306SCy Schubert 152*41edb306SCy Schubertipft_ef.o: ipf/ipft_ef.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 153*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_ef.c -o $@ 154*41edb306SCy Schubert 155*41edb306SCy Schubertipft_hx.o: ipf/ipft_hx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 156*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_hx.c -o $@ 157*41edb306SCy Schubert 158*41edb306SCy Schubertipft_pc.o: ipf/ipft_pc.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 159*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_pc.c -o $@ 160*41edb306SCy Schubert 161*41edb306SCy Schubertipft_sn.o: ipf/ipft_sn.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 162*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_sn.c -o $@ 163*41edb306SCy Schubert 164*41edb306SCy Schubertipft_td.o: ipf/ipft_td.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 165*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_td.c -o $@ 166*41edb306SCy Schubert 167*41edb306SCy Schubertipft_tx.o: ipf/ipft_tx.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 168*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/ipft_tx.c -o $@ 169*41edb306SCy Schubert 170*41edb306SCy Schubertopt.o: ipf/opt.c ipf/ipt.h ipf/ipf.h ipf/ip_compat.h 171*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/opt.c -o $@ 172*41edb306SCy Schubert 173*41edb306SCy Schubertinet_addr.o: ipf/inet_addr.c 174*41edb306SCy Schubert $(CC) $(CFLAGS) $(LINUXK) -c ipf/inet_addr.c -o $@ 175*41edb306SCy Schubert 176*41edb306SCy Schubertclean: 177*41edb306SCy Schubert rm -rf *.o *core a.out ipsend ipresend iptest 178*41edb306SCy Schubert if [ -d iplang ]; then (cd iplang; $(MAKE) $(MFLAGS) clean); fi 179*41edb306SCy Schubert if [ -d $(TOP)/iplang ]; then (cd $(TOP)/iplang; $(MAKE) $(MFLAGS) clean); fi 180*41edb306SCy Schubert 181*41edb306SCy Schubertdo-cvs: 182*41edb306SCy Schubert find . -type d -name CVS -print | xargs /bin/rm -rf 183*41edb306SCy Schubert find . -type f -name .cvsignore -print | xargs /bin/rm -f 184