CFLAGS = -O
OFILES = main.o 4D.o ray.o mstack.o raytrace.o tree.o scene.o \
         primitive.o classify.o boundvol.o randgen.o seads.o \
         3DDDA.o torus.o Complex.o PolyRoots.o sample.o \
	 eqsplit.o stratified.o HighInt.o

LIBS = -lmalloc -ll -lmV
RAYTRACE.H = Math.h 4D.h ray.h mstack.h raytrace.h tree.h classify.h sml.h \
             sample.h eqsplit.h stratified.h


srt : $(OFILES) y.tab.o lex.yy.o util.o
	cc $(CFLAGS) -o srt $(OFILES) y.tab.o lex.yy.o util.o $(LIBS)
srtsml : $(OFILES) sml.o
	cc -o srtsml $(OFILES) sml.o $(LIBS)
testinv : testinv.o util.o 4D.o
	cc -o testinv testinv.o util.o 4D.o -lm 

y.tab.c:   sml.yacc
	   yacc -d sml.yacc
lex.yy.c:  sml.lex
	   lex sml.lex

install: srt
	install -c -o pjs -g graphics -m 775 -s srt /usr/graphics/bin/srt

4D.o  :      4D.h fast.c 
boundvol.o : $(RAYTRACE.H) boundvol.h
classify.o : $(RAYTRACE.H)  
mstack.o :   4D.h ray.h mstack.h fast.c
primitive.o :$(RAYTRACE.H)  primitive.h fast.c
randgen.o :  randgen.h
ray.o :      4D.h ray.h fast.c
raytrace.o : $(RAYTRACE.H)  3DDDA.h
scene.o :    $(RAYTRACE.H)  boundvol.h classify.h scene.h primitive.h 
seads.o :    $(RAYTRACE.H)  seads.h fast.c
3DDDA.o :    $(RAYTRACE.H)  3DDDA.h scene.h seads.h fast.c
sml.o :      $(RAYTRACE.H)  
tree.o :     $(RAYTRACE.H)  
torus.o :    $(RAYTRACE.H) Complex.h
Complex.o :  Complex.h
PolyRoots.o : Complex.h
sample.o :   $(RAYTRACE.H) randgen.h

y.tab.o :    util.h $(RAYTRACE.H)  
util.o :     util.h csg.h mx.h
lex.yy.o :   y.tab.c

