#**	Makefile for General Software Network Analyzers.
#
#	Functional Description.
#	This file builds the General Software Network Analyzers.
#
#	Modification history.
#	S. E. Jones	92/03/16.	#1.0, Original.
#	S. E. Jones	92/07/13.	Name change (LANprobe->EtherProbe).
#	S. E. Jones	92/07/20.	Added demo.
#	S. E. Jones	92/12/28.	#2.0, new major release.
#	S. E. Jones	93/02/05.	#2.2, added GSFSP.

.SUFFIXES:	.c .asm .obj .lst .def .lnk .lrf .exe .com .inc

ASM=	masm
AFLAGS= /Ml
LINK=	link
#LFLAGS= /MAP /STACK:8192 /NOD /NOE /SEGMENTS:512
LFLAGS= /NOD /MAP /SEGMENTS:512
LIBS=	libh.lib+llibcr.lib
C=	cl

CEFLAGS= /W2 /AL /Gs /Zp1 /FoOBJE\ /c
CSFLAGS= /W2 /AL /Gs /Zp1 /FoOBJS\ /c

DEFLAGS= /W2 /AL /Gs /Zp1 /FoOBJED\ /DDEMO /c
DSFLAGS= /W2 /AL /Gs /Zp1 /FoOBJSD\ /DDEMO /c

EFLAGS= /DETHERPROBE /DPRODUCT_MAJVER=2 /DPRODUCT_MINVER=4
SFLAGS= /DSNOOPER /DPRODUCT_MAJVER=2 /DPRODUCT_MINVER=4

#	Rules for generating object files.

.asm.obj:
	$(ASM) $(AFLAGS) $*.asm;

.asm.lst:
	$(ASM) -l -n $(AFLAGS) $*.asm;

.c.obj:
	$(C) $(CFLAGS) $*.c

#	Rules for building objects go here.

all: etherpro.exe etherdem.exe snooper.exe snoopdem.exe

etherpro.exe: obje\capture.obj obje\config.obj obje\gsipc.obj \
	obje\analyzer.obj obje\ethernet.obj obje\ipx.obj obje\spx.obj \
	obje\llc.obj obje\ncp.obj obje\ip.obj obje\decnet.obj obje\netbeui.obj \
	obje\smb.obj obje\snifhelp.obj obje\format.obj obje\display.obj \
	obje\gsllctdi.obj obje\filesupp.obj obje\alarms.obj obje\arp.obj \
	obje\gsfsp.obj obje\generate.obj obje\trigger.obj obje\name.obj \
	makefile ..\cow\obj\window.obj ..\cow\obj\field.obj \
	..\cow\obj\list.obj ..\cow\obj\input.obj ..\cow\obj\screen.obj \
	..\cow\obj\popup.obj ..\cow\obj\menu.obj ..\cow\obj\util.obj
	$(LINK) $(LFLAGS) @etherpro.lrf,etherpro.exe,,$(LIBS);

etherdem.exe: objed\capture.obj objed\config.obj obje\gsipc.obj \
	obje\analyzer.obj obje\ethernet.obj obje\ipx.obj obje\spx.obj \
	obje\llc.obj obje\ncp.obj obje\ip.obj obje\decnet.obj obje\netbeui.obj \
	obje\smb.obj obje\snifhelp.obj obje\format.obj obje\display.obj \
	obje\gsllctdi.obj obje\filesupp.obj obje\alarms.obj obje\arp.obj \
	obje\gsfsp.obj obje\generate.obj obje\trigger.obj obje\name.obj \
	makefile ..\cow\obj\window.obj ..\cow\obj\field.obj \
	..\cow\obj\list.obj ..\cow\obj\input.obj ..\cow\obj\screen.obj \
	..\cow\obj\popup.obj ..\cow\obj\menu.obj ..\cow\obj\util.obj
	$(LINK) $(LFLAGS) @etherdem.lrf,etherdem.exe,,$(LIBS);

snooper.exe: objs\capture.obj objs\config.obj objs\gsfsp.obj objs\gsipc.obj \
	objs\analyzer.obj objs\ethernet.obj objs\ipx.obj objs\spx.obj \
	objs\llc.obj objs\ncp.obj objs\ip.obj objs\decnet.obj objs\netbeui.obj \
	objs\smb.obj objs\snifhelp.obj objs\format.obj objs\display.obj \
	objs\gsllctdi.obj objs\filesupp.obj objs\name.obj objs\arp.obj \
	makefile ..\cow\obj\window.obj ..\cow\obj\field.obj \
	..\cow\obj\list.obj ..\cow\obj\input.obj ..\cow\obj\screen.obj \
	..\cow\obj\popup.obj ..\cow\obj\menu.obj ..\cow\obj\util.obj
	$(LINK) $(LFLAGS) @snooper.lrf,snooper.exe,,$(LIBS);

snoopdem.exe: objsd\capture.obj objsd\config.obj objs\gsfsp.obj objs\gsipc.obj \
	objs\analyzer.obj objs\ethernet.obj objs\ipx.obj objs\spx.obj \
	objs\llc.obj objs\ncp.obj objs\ip.obj objs\decnet.obj objs\netbeui.obj \
	objs\smb.obj objs\snifhelp.obj objs\format.obj objs\display.obj \
	objs\gsllctdi.obj objs\filesupp.obj objs\name.obj objs\arp.obj \
	makefile ..\cow\obj\window.obj ..\cow\obj\field.obj \
	..\cow\obj\list.obj ..\cow\obj\input.obj ..\cow\obj\screen.obj \
	..\cow\obj\popup.obj ..\cow\obj\menu.obj ..\cow\obj\util.obj
	$(LINK) $(LFLAGS) @snoopdem.lrf,snoopdem.exe,,$(LIBS);

#	Rules for building the EtherProbe DEMO object files go here.

objed\config.obj: config.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(DEFLAGS) $(EFLAGS) config.c

objed\capture.obj: capture.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(DEFLAGS) $(EFLAGS) capture.c

#	Rules for building The Snooper DEMO object files go here.

objsd\config.obj: config.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(DSFLAGS) $(SFLAGS) config.c

objsd\capture.obj: capture.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(DSFLAGS) $(SFLAGS) capture.c

#	Rules for the remaining EtherProbe object files go here.

obje\analyzer.obj: analyzer.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) analyzer.c

obje\format.obj: format.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) format.c

obje\display.obj: display.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) display.c

obje\config.obj: config.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) config.c

obje\alarms.obj: alarms.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) alarms.c

obje\name.obj: name.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) name.c

obje\capture.obj: capture.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) capture.c

obje\generate.obj: generate.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) generate.c

obje\trigger.obj: trigger.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) trigger.c

obje\filesupp.obj: filesupp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) filesupp.c

obje\ipx.obj: ipx.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) ipx.c

obje\spx.obj: spx.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) spx.c

obje\ncp.obj: ncp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) ncp.c

obje\llc.obj: llc.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) llc.c

obje\decnet.obj: decnet.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) decnet.c

obje\smb.obj: smb.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) smb.c

obje\ip.obj: ip.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) ip.c

obje\arp.obj: arp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) arp.c

obje\netbeui.obj: netbeui.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) netbeui.c

obje\gsllctdi.obj: gsllctdi.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) gsllctdi.c

obje\gsfsp.obj: gsfsp.c fsp.h analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) gsfsp.c

obje\gsipc.obj: gsipc.c ipcp.h analyzer.h ..\cow\cow.h	..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) gsipc.c

obje\ethernet.obj: ethernet.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CEFLAGS) $(EFLAGS) ethernet.c

obje\snifhelp.obj: snifhelp.asm ..\inc\defines.inc ..\inc\umacros.inc \
	..\inc\usegs.inc
	$(ASM) $(AFLAGS) snifhelp,obje\snifhelp;

#	Rules for the remaining Snooper object files go here.

objs\analyzer.obj: analyzer.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) analyzer.c

objs\format.obj: format.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) format.c

objs\display.obj: display.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) display.c

objs\config.obj: config.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) config.c

objs\name.obj: name.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) name.c

objs\capture.obj: capture.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) capture.c

objs\filesupp.obj: filesupp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) filesupp.c

objs\ipx.obj: ipx.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) ipx.c

objs\spx.obj: spx.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) spx.c

objs\ncp.obj: ncp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) ncp.c

objs\llc.obj: llc.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) llc.c

objs\decnet.obj: decnet.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) decnet.c

objs\smb.obj: smb.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) smb.c

objs\ip.obj: ip.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) ip.c

objs\arp.obj: arp.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) arp.c

objs\netbeui.obj: netbeui.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) netbeui.c

objs\gsllctdi.obj: gsllctdi.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) gsllctdi.c

objs\gsfsp.obj: gsfsp.c fsp.h analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) gsfsp.c

objs\gsipc.obj: gsipc.c ipcp.h analyzer.h ..\cow\cow.h	..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) gsipc.c

objs\ethernet.obj: ethernet.c analyzer.h ..\cow\cow.h  ..\inc\ktypes.h
	$(C) $(CSFLAGS) $(SFLAGS) ethernet.c

objs\snifhelp.obj: snifhelp.asm ..\inc\defines.inc ..\inc\umacros.inc \
	..\inc\usegs.inc
	$(ASM) $(AFLAGS) snifhelp,objs\snifhelp;
