
EX_LIB = ..\lib\nihcl.lib
EX_MI_LIB = ..\lib\nihclmi.lib
#VECEX_LIB = ..\vector\nihclvec.lib
NIHCLINC=..\include
#NIHCLVEINC = ..\vector
#NIHCLVELIB = ..\vector\libnihclvec.a
  
COMPVER=Microsoft  

!IF DEFINED(COMPVER)
!IF "$(COMPVER)"=="Borland"
LFLAGS = -c -x
CC = bcc
BCCBUGFLAGS= -Vc
CCFLAGS = -w -ml -Vf -I$(NIHCLINC) $(CCDEBUG) $(BCCBUGFLAGS)
CCLIBS = emu.lib mathl.lib cl.lib
EXE2OBJ= tlink $(LFLAGS) c0L $**, $*.exe,,$(EX_LIB) $(CCLIBS)
EXE2OBJMI=tlink $(LFLAGS) c0L $**,$*.exe,,$(EX_MI_LIB) $(CCLIBS)
EXE2OBJVEH=tlink $(LFLAGS) c0L $**,$*.exe,,$(EX_MI_LIB) vehicle.lib $(CCLIBS)   
!ELSEIF "$(COMPVER)"=="Microsoft"
CC=cl 
CCLIBS=llibce
CCFLAGS=/nologo /G3 /AL /Gy /Gf /W4 /vmg /f- /Ob1 /OV9 /I$(NIHCLINC)
LFLAGS=/nologo /STACK:12000 /ONERROR:NOEXE /SEG:256 /NOE /CO
EXE2OBJ= link $(LFLAGS) $**, $*.exe,nul,$(EX_LIB) $(CCLIBS); 
EXE2OBJMI= link $(LFLAGS) $**, $*.exe,nul,$(EX_MI_LIB) $(CCLIBS);
EXE2OBJVEH=link $(LFLAGS) $**,$*.exe,nul,$(EX_MI_LIB) vehicle.lib $(CCLIBS);   
!ELSE
!ERROR Untested compiler
!ENDIF  
!ELSE
!ERROR  Macro named COMPVER is not defined.
!ENDIF

PROGS=   ex2-1.exe ex2-3.exe\
			ex5-1.exe ex5-2.exe ex5-3.exe ex5-4.exe ex5-5.exe\
			ex5-6.exe ex5-7.exe ex5-9.exe ex5-10.exe ex5-11.exe\
			ex6-1.exe ex6-2.exe ex6-3.exe ex6-4.exe\
			ex7-1.exe ex7-2.exe ex7-3.exe\
			ex8-1.exe ex8-2.exe ex8-3.exe ex8-4.exe ex8-5.exe ex8-6.exe\
			ex8-7.exe ex8-8.exe ex8-9.exe ex8-10.exe\
			ex8-11.exe ex8-12.exe ex8-13.exe ex8-14.exe ex8-15.exe ex8-16.exe\
			ex9-1.exe ex9-2.exe ex9-3.exe ex9-4.exe\
			ex10-1.exe ex10-1K.exe ex10-1S.exe ex10-1SK.exe\
			ex13-1.exe ex13-2.exe ex13-3.exe ex13-4.exe\
			ex13-5.exe ex13-6.exe ex13-7.exe ex13-8.exe\
			ex13-9.exe ex13-10.exe ex13-11.exe ex14-1.exe ex14-2.exe


CLASSES = BigInt.obj\
			 ArrayPar.obj AutoDeri.obj ExString.obj Matrix.obj Partial.obj\
			 Circle.obj  Line.obj Picture.obj Shape.obj\
			 Patient.obj\
			 AllLink.obj AllVehic.obj AmphibVh.obj ArrayOb.obj\
			 DrawBrid.obj  LandVhcl.obj QLink.obj  StopLigh.obj\
			 Vehicle.obj VehicleQ.obj WaterVhc.obj

VEHICLEOBJS = AllLink.obj AllVehic.obj AmphibVh.obj DrawBrid.obj\
					 LandVhcl.obj QLink.obj StopLigh.obj Vehicle.obj\
					 VehicleQ.obj WaterVhc.obj


.cpp.obj:
	$(CC) -c $(CCFLAGS) $<


all: $(CLASSES) vehicle.lib $(PROGS)

cleanobjs:
	del *.obj
	del vehicle.lib

claenprogs:
	del *.exe

#
vehicle.lib: $(VEHICLEOBJS)    
!IF "$(COMPVER)"=="Microsoft"
	!LIB vehicle.lib -+$?;            
!ELSEIF "$(COMPVER)"=="Borland"
  &tlib vehicle.lib -+$?;
!ELSE
!ERROR Set lib command  
!ENDIF  

# C program to add ints
ex2-1.exe: ex2-1.obj
	$(EXE2OBJ)

# C++ program to add instances of class BigInt
ex2-3.exe: ex2-3.obj BigInt.obj
	$(EXE2OBJ)

# Writing to the standard output stream
ex5-1.exe: ex5-1.obj
	$(EXE2OBJ)

# Reading from the standard input stream
ex5-2.exe: ex5-2.obj
	$(EXE2OBJ)

# Writing a BigInt to the standard output
ex5-3.exe: ex5-3.obj BigInt.obj
	$(EXE2OBJ)

# Extending stream I/O for class BigInt
ex5-4.exe: ex5-4.obj BigInt.obj
	$(EXE2OBJ)

# Opening a stream for an output file
ex5-5.exe: ex5-5.obj
	$(EXE2OBJ)

# String substitution
ex5-6.exe: ex5-6.obj ExString.obj
	$(EXE2OBJ)

# Find dates of working days
ex5-7.exe: ex5-7.obj
	$(EXE2OBJ)

# Matrix algebra with Class Matrix
ex5-9.exe: ex5-9.obj Matrix.obj
	$(EXE2OBJ)

# One dimensional automatic derivatives with class AutoDeriv
ex5-10.exe: ex5-10.obj AutoDeri.obj
	$(EXE2OBJ)

# Newton's method with Partial automatic derivatives
ex5-11.exe: ex5-11.obj ArrayPar.obj Partial.obj Matrix.obj
	$(EXE2OBJ)


# Geometry class hierarchy
ex6-1.exe: ex6-1.obj
	$(EXE2OBJ)

# Improved geometry class hierarchy
ex6-2.exe: ex6-2.obj
	$(EXE2OBJ)

# Order of construction of base and member classes
ex6-3.exe: ex6-3.obj
	$(EXE2OBJ)

# Calling a virtual function from a base class constructor
ex6-4.exe: ex6-4.obj
	$(EXE2OBJ)


# Geometry class hierarchy using NIH class library
ex7-1.exe: ex7-1.obj
	$(EXE2OBJ)

#  Improved geometry class hierarchy using NIH class library
ex7-2.exe: ex7-2.obj Circle.obj Line.obj Picture.obj Shape.obj
	$(EXE2OBJ)

#  Object I/O readFrom()
ex7-3.exe: ex7-3.obj Circle.obj Line.obj Picture.obj Shape.obj
	$(EXE2OBJ)


#  Description of a Patient object
ex8-1.exe: ex8-1.obj Patient.obj
	$(EXE2OBJ)

#  Use of an Iterator with container for objects of unknown class
ex8-2.exe: ex8-2.obj
	$(EXE2OBJ)

#  Nested Iterators
ex8-3.exe: ex8-3.obj
	$(EXE2OBJ)

#  Incorrectly modifying a container during iteration
ex8-4.exe: ex8-4.obj
	$(EXE2OBJ)

#  Modifying a container during iteration
ex8-5.exe: ex8-5.obj
	$(EXE2OBJ)

#  Sequential access to Objects in an OrderedCltn
ex8-6.exe: ex8-6.obj Patient.obj
	$(EXE2OBJ)

#  Sorting Patient records by name
ex8-7.exe: ex8-7.obj Patient.obj
	$(EXE2OBJ)

#  Sorting Patient records with a KeySortCltn
ex8-8.exe: ex8-8.obj Patient.obj
	$(EXE2OBJ)

#  Sorting on Multiple Keys with ArrayOb and KeySortCltn
ex8-9.exe: ex8-9.obj Patient.obj
	$(EXE2OBJ)

#  Linking into a LinkedList
ex8-10.exe: ex8-10.obj
	$(EXE2OBJ)

#  Test if date falls on a weekday
ex8-11.exe: ex8-11.obj
	$(EXE2OBJ)

#  Binary Set operators
ex8-12.exe: ex8-12.obj Patient.obj
	$(EXE2OBJ)

# Comparison of classes Set and IdentSet
ex8-13.exe: ex8-13.obj
	$(EXE2OBJ)

#  A Dictionary of Patient records keyed by name
ex8-14.exe: ex8-14.obj Patient.obj
	$(EXE2OBJ)

# Comparison of classes Dictionary and IdentDict
ex8-15.exe: ex8-15.obj
	$(EXE2OBJ)

#  Property list
ex8-16.exe: ex8-16.obj Patient.obj
	$(EXE2OBJ)

# Class ArrayOb example 
!IF "$(COMPVER)"=="Microsoft"
#MSC link problem even with /NOE
ex9-1.exe: ex9-1.obj 
!ELSE
ex9-1.exe: ex9-1.obj ArrayOb.obj
!ENDIF
	$(EXE2OBJ)   
		
# Incorrect handling of member pointers to class instances
ex9-2.exe: ex9-2.obj
	$(EXE2OBJ)

# Correct handling of member pointers to class instances
ex9-3.exe: ex9-3.obj
	$(EXE2OBJ)

# Virtual inline function calls
ex9-4.exe: ex9-4.obj
	$(EXE2OBJ)

# Variations of isEqual()
ex10-1K.obj: ex10-1K.cpp
	$(CC) $(CCFLAGS) -c -DKINDOF $*.cpp

ex10-1S.obj: ex10-1S.cpp
	$(CC) $(CCFLAGS) -c -DSTRICT $*.cpp

ex10-1SK.obj: ex10-1SK.cpp
	$(CC) $(CCFLAGS) -c -DSTRICT -DKINDOF $*.cpp

ex10-1.exe: ex10-1.obj
	$(EXE2OBJ)

ex10-1K.exe: ex10-1K.obj
	$(EXE2OBJ)

ex10-1S.exe: ex10-1S.obj
	$(EXE2OBJ)

ex10-1SK.exe: ex10-1SK.obj
	$(EXE2OBJ)


# Class Vehicle with multiple links
ex13-1.exe: ex13-1.obj
	$(EXE2OBJMI)

# Improved vehicle linked lists
ex13-2.exe: ex13-2.obj
	$(EXE2OBJMI)

# Virtual functions and multiple inheritance
ex13-3.exe: ex13-3.obj
	$(EXE2OBJMI)

# Class AmphibiousVehicle with virtual base class
ex13-4.exe: ex13-4.obj
	$(EXE2OBJMI)

# Virtual base classes and virtual functions
ex13-5.exe: ex13-5.obj
	$(EXE2OBJMI)

# Order of construction of multiple base, virtual base, and member classes
ex13-6.exe: ex13-6.obj
	$(EXE2OBJMI)

# Calling a virtual function from a base class constructor
ex13-7.exe: ex13-7.obj
	$(EXE2OBJMI)

# Static method for avoiding undesired multiple calls to member functions of virtual base classes
ex13-8.exe: ex13-8.obj
	$(EXE2OBJ)


# MI with the NIH Class Library
ex13-9.exe: ex13-9.obj
	$(EXE2OBJVEH)

# MI and Object I/O readFrom()
ex13-10.exe: ex13-10.obj
	$(EXE2OBJVEH)

# Limitation of Object I/O
ex13-11.exe: ex13-11.obj
	$(EXE2OBJVEH)

# future MFM
ex14-1.exe: ex14-1.obj Patient.obj
	$(EXE2OBJ)

ex14-2.exe: ex14-2.obj Patient.obj
	$(EXE2OBJ)

AllLink.obj: $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

AllVehic.obj: AllVehic.h $(NIHCLINC)\LinkedLi.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\Link.h\
			AllLink.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\OIOfd.h

AmphibVh.obj: AmphibVh.h LandVhcl.h Vehicle.h AllLink.h $(NIHCLINC)\Link.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h\
			WaterVhc.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h\
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\OIOfd.h


ArrayOb.obj: $(NIHCLINC)\ArrayOb.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\nihclIO.h\
			$(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h   \
			$(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h $(NIHCLINC)\IdentSet.h\
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

ArrayPar.obj: ArrayPar.h Partial.h Matrix.h

AutoDeri.obj: AutoDeri.h


BigInt.obj: BigInt.h


Circle.obj: Circle.h Shape.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Point.h\
			$(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h $(NIHCLINC)\Dictiona.h $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\OIOfd.h

DrawBridgeQ.obj: DrawBrid.h VehicleQ.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\Link.h\
			WaterVhc.h Vehicle.h AllLink.h QLink.h AllVehic.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h \
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\OIOfd.h


ExString.obj: ExString.h


LandVhcl.obj: LandVhcl.h Vehicle.h AllLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h $(NIHCLINC)\Dictiona.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\OIOfd.h

Line.obj: Line.h Shape.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Point.h\
			$(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\OIOfd.h

Matrix.obj: Matrix.h

Partial.obj: Partial.h

Patient.obj: Patient.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\OIOfd.h

Picture.obj: Picture.h Shape.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Point.h\
			$(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\OIOfd.h

QLink.obj: QLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

Shape.obj: Shape.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Point.h\
			$(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\OIOfd.h

StopLigh.obj: StopLigh.h VehicleQ.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\Link.h\
			LandVhcl.h Vehicle.h AllLink.h QLink.h AllVehic.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\OIOfd.h

Vehicle.obj: Vehicle.h AllLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h VehicleQ.h\
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\OIOfd.h\
			$(NIHCLINC)\OIOnih.h $(NIHCLINC)\OIOstrea.h

VehicleQ.obj: VehicleQ.h $(NIHCLINC)\LinkedLi.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\Link.h QLink.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\OIOfd.h

WaterVhc.obj: WaterVhc.h Vehicle.h AllLink.h $(NIHCLINC)\Link.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\OIOfd.h

ex10-1.obj: $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

!if 0
ex10-1K.obj: $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

ex10-1S.obj: $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h

ex10-1SK.obj: $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\nihclIO.h $(NIHCLINC)\OIO.h\
			$(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h   \
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\OIOfd.h
!endif

ex13-10.obj: LandVhcl.h Vehicle.h AllLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h WaterVhc.h\
			AmphibVh.h StopLigh.h VehicleQ.h DrawBrid.h\
			$(NIHCLINC)\OrderedC.h $(NIHCLINC)\OIOnih.h $(NIHCLINC)\OIOstrea.h\
			$(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h   \
			$(NIHCLINC)\Dictiona.h

ex13-11.obj: QLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h LandVhcl.h Vehicle.h AllLink.h AllVehic.h\
			$(NIHCLINC)\LinkedLi.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Iterator.h $(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\OIOnih.h $(NIHCLINC)\OIOstrea.h\
			$(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h $(NIHCLINC)\IdentDic.h   \
			$(NIHCLINC)\Dictiona.h    $(NIHCLINC)\OrderedC.h

ex13-9.obj: LandVhcl.h Vehicle.h AllLink.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h QLink.h AllVehic.h $(NIHCLINC)\LinkedLi.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\Set.h $(NIHCLINC)\ArrayOb.h WaterVhc.h\
			AmphibVh.h StopLigh.h VehicleQ.h DrawBrid.h

ex14-1.obj: $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\Date.h $(NIHCLINC)\Exceptio.h\
			$(NIHCLINC)\niherrs.h

ex14-2.obj: Patient.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\AssocInt.h $(NIHCLINC)\LookupKe.h $(NIHCLINC)\Integer.h


ex5-3.obj: BigInt.h

ex5-4.obj: BigInt.h

ex5-6.obj: ExString.h

ex5-7.obj: $(NIHCLINC)\Date.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\NIHStrin.h

ex5-9.obj: Matrix.h

ex5-10.obj: AutoDeri.h

ex5-11.obj: ArrayPar.h Partial.h Matrix.h


ex7-1.obj: $(NIHCLINC)\Point.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h\
			$(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h

ex7-2.obj: $(NIHCLINC)\Point.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h\
			Line.h Shape.h $(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h Circle.h Picture.h $(NIHCLINC)\OIOnih.h\
			$(NIHCLINC)\OIOstrea.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h

ex7-3.obj: $(NIHCLINC)\Point.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h\
			Line.h Shape.h $(NIHCLINC)\Stack.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h Circle.h Picture.h $(NIHCLINC)\OIOnih.h\
			$(NIHCLINC)\OIOstrea.h $(NIHCLINC)\OIO.h $(NIHCLINC)\OIOTbl.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\IdentSet.h

ex8-1.obj: Patient.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\NIHStrin.h

ex8-10.obj: $(NIHCLINC)\LinkOb.h $(NIHCLINC)\Link.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\LinkedLi.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\NIHStrin.h

ex8-11.obj: $(NIHCLINC)\Date.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h $(NIHCLINC)\NIHStrin.h

ex8-12.obj: Patient.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\ArrayOb.h $(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Range.h

ex8-13.obj: $(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\IdentSet.h $(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Range.h

ex8-14.obj: $(NIHCLINC)\Assoc.h $(NIHCLINC)\LookupKe.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Range.h $(NIHCLINC)\NIHStrin.h\
			Patient.h

ex8-15.obj: $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\IdentDic.h    $(NIHCLINC)\LookupKe.h $(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Range.h

ex8-16.obj: $(NIHCLINC)\IdentDic.h    $(NIHCLINC)\Dictiona.h    $(NIHCLINC)\Set.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\Date.h Patient.h

ex8-2.obj: $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h

ex8-3.obj: $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h

ex8-4.obj: $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h

ex8-5.obj: $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\NIHStrin.h

ex8-6.obj: $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h\
			$(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h Patient.h\
			$(NIHCLINC)\NIHStrin.h

ex8-7.obj: $(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h $(NIHCLINC)\SeqCltn.h\
			$(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\Range.h $(NIHCLINC)\NIHStrin.h\
			Patient.h

ex8-8.obj: $(NIHCLINC)\Assoc.h $(NIHCLINC)\LookupKe.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Integer.h $(NIHCLINC)\Iterator.h\
			$(NIHCLINC)\KeySortc.h $(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\Range.h $(NIHCLINC)\NIHStrin.h\
			Patient.h

ex8-9.obj: $(NIHCLINC)\KeySortc.h $(NIHCLINC)\SortedCl.h $(NIHCLINC)\OrderedC.h\
			$(NIHCLINC)\SeqCltn.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\ArrayOb.h\
			$(NIHCLINC)\Range.h $(NIHCLINC)\LookupKe.h $(NIHCLINC)\Assoc.h Patient.h\
			$(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\Integer.h

ex9-1.obj: $(NIHCLINC)\ArrayOb.h $(NIHCLINC)\Collecti.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h $(NIHCLINC)\Iterator.h $(NIHCLINC)\Point.h\
			$(NIHCLINC)\NIHStrin.h\
			$(NIHCLINC)\Date.h

ex9-2.obj: $(NIHCLINC)\NIHStrin.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h

ex9-3.obj: $(NIHCLINC)\NIHStrin.h $(NIHCLINC)\Object.h\
			$(NIHCLINC)\errors.h


