# 
#  NNStat Makefile --  make collect, statspy, lookupnames, and rspy --
#   for SUN3 and SUN4 workstations, for PC/RTs, and for little-endian
#   machines running Ultrix 4.0 or later.
#
#   Release 3.00
#
#   #ifdef's:
#      SUBNETS:  Include subnet parsing
#      SUNOS4:   NIT interface for SUN OS 4.x
#      BSD4_3:   System derived from BSD 4.3 or later
#      FALIGN:   Parse() uses sparcstation alignment rules
#      IBMRTPC:  Special mods for IBM PC/RT
#      ULTRIX:   Special mods for Ultrix
#      LITTLEEND: Modifications for little-endian byte order
#      XPARSE:   Parse() parses some experimental fields
#
ALL= collect statspy lookupnames rspy document

#### UNCOMMENT CORRECT SET FOR MACHINE AND OP SYS:
####

### For Sun 3 running OS 4.X, use:
COPTS = -g -c -DBSD4_3 -DSUNOS4 -DSUBNETS
ETHERIF = etherif4.o
LIBS = -lresolv -ll

### For Sun4 (SPARC) running OS 4.X, use:
# COPTS = -g -c -DBSD4_3 -DSUNOS4 -DFALIGN -DSUBNETS
# ETHERIF = etherif4.o
# LIBS = -lresolv -ll

### For Sun OS 3.x and other BSD 4.x systems, use:
# COPTS = -g -c -DSUBNETS
# ETHERIF = etherif3.o
# LIBS= -lresolv -ll

### For IBM RT PC
# COPTS = -g -c -DBSD4_3 -DIBMRTPC
# ETHERIF = etherifrt.o
# LIBS= -ll ../rpc/rpclib
# LINKOPTS = -g

### For RISC Ultrix 4.0 and later systems, use:
# COPTS = -g3 -O -c -DSUBNETS -DFALIGN -DBSD4_3 -DULTRIX -DLITTLEEND
# ETHERIF = etherifpf.o
# LIBS= -ll

### For Vax Ultrix 4.0 and later systems, use:
# COPTS = -O -c -DSUBNETS -DBSD4_3 -DULTRIX -DLITTLEEND
# ETHERIF = etherifpf.o
# LIBS= -ll

### To read packets from file for testing statspy, use:
# ETHERIF = testif.o



all:	${ALL}

.c.o:
	cc $(COPTS) $<

lookupnames: lookupnames.o hostname.o
	cc $(LINKOPTS) -o lookupnames lookupnames.o hostname.o \
	   ${LIBS}

collect: collect.o connect.o logfile.o reply.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o
	cc $(LINKOPTS) -o collect collect.o connect.o logfile.o reply.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o ${LIBS}

statspy: $(ETHERIF) statspy.o parse.o analyze.o attach.o filbuf.o cmds.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o
	cc $(LINKOPTS) -o statspy\
           $(ETHERIF) statspy.o parse.o analyze.o attach.o filbuf.o cmds.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o ${LIBS}

rspy: rspy.o remote.o reply.o cmds.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o
	cc $(LINKOPTS) -o rspy rspy.o remote.o reply.o cmds.o\
           statio.o enum.o scan.o hostname.o filter.o sobjfo.o sobjhist.o\
           sobjma.o sobjws.o sobjfa.o sobjbp.o sobjma2.o sobjfa2.o\
           sobjmfb.o sobjfob.o select.o ${LIBS}


connect.o collect.o: stat.h collect.h

$(ETHERIF): packet.h

logfile.o: collect.h stat.h

statspy.o enum.o analyze.o attach.o: sobj.h stat.h

sobjfa.o sobjma.o sobjhist.o sobjfo.o sobjbp.o sobjws.o: sobj.h stat.h

sobjfa2.o sobjma2.o filter.o sobjmfb.o sobjfob.o: sobj.h stat.h

scan.o cmds.o: cmds.lex.yy.c scan.h stat.h sobj.h
 
parse.o: packet.h sobj.h stat.h

statio.o rspy.o reply.o remote.o: stat.h

dolex: cmds.lex 
	lex cmds.lex
	cp lex.yy.c cmds.lex.yy.c
	rm lex.yy.c
	rm scan.o
		
clean:
	rm -f $(ALL) *.o *.BAK *.CKP a.out core

document: doc.ms
	nroff -ms doc.ms |awk -f ff.awk >doc.txt
