LFLAGS = -n
YFLAGS = -d
MFLAGS = -DSTATS -DTIME_STATS -I../../lib -O4 /usr/lib/libm.il
CFLAGS = $(MFLAGS) -I../../lib -fsingle

SRCS = gram.c main.c lex.c prepro.c message.c matrix.c solve.c rt.c \
	stree.c shade.c light.c expr.c symbol.c object.c tile.c bbox.c \
	csg.c comp.c sphere.c box.c geom.c interp.c alg.c torus.c hfield.c \
	polygon.c ellipse.c cone.c cylinder.c ring.c super.c smalloc.c \
	util.c map.c texture.c noise.c twentyf.c repeat.c 

OBJS = gram.o main.o lex.o prepro.o message.o matrix.o solve.o rt.o \
	stree.o shade.o light.o expr.o symbol.o object.o tile.o bbox.o \
	csg.o comp.o sphere.o box.o geom.o interp.o alg.o torus.o hfield.o \
	polygon.o ellipse.o cone.o cylinder.o ring.o super.o smalloc.o \
	util.o map.o texture.o noise.o twentyf.o repeat.o

OBJS2 = gram.o artd.o lex.o prepro.o message.o matrix.o solve.o rt.o \
	stree.o shade.o light.o expr.o symbol.o object.o tile.o bbox.o \
	csg.o comp.o sphere.o box.o geom.o interp.o alg.o torus.o hfield.o \
	polygon.o ellipse.o cone.o cylinder.o ring.o super.o smalloc.o \
	util.o map.o texture.o noise.o twentyf.o repeat.o

all: art artd dart in.netartd nart

art: $(OBJS) ../../lib/libvort.a
	cc $(CFLAGS) -o art $(OBJS) ../../lib/libvort.a -ll -lm 

artd: $(OBJS2) ../../lib/libvort.a
	cc $(CFLAGS) -o artd $(OBJS2) ../../lib/libvort.a -ll -lm

dart: dart.o ../../lib/libvort.a
	cc $(CFLAGS) -o dart dart.o ../../lib/libvort.a -ll -lm

in.netartd: in.netartd.o
	cc $(CFLAGS) -o in.netartd in.netartd.o

nartc: nartc.o
	cc $(CFLAGS) -o nartc nartc.o

nart: nart.o
	cc $(CFLAGS) -o nart nart.o

lint: $(SRCS)
	lint -DNOSILLYNESS $(SRCS) -I../../lib -lm > art.lint

clean:
	rm -f *.o core

clobber:
	rm -f art *.o core

$(OBJS)\
: art.h gram.h macro.h ../../lib/vort.h

alg.o solve.o torus.o : poly.h

gram.o: gram.c
	cc -c -O -I../../lib gram.c

gram.c gram.h: gram.y

.y.c:
	yacc -d $*.y
	mv y.tab.c gram.c
	if cmp -s y.tab.h $*.h; then rm y.tab.h; else mv y.tab.h $*.h; fi
