#
# Makefile for Mark VandeWettering's 
# MTV RAYTRACER
#

PROG=ray
CC=cc
#CC=gcc
CFLAGS=-f68881 -O
#CFLAGS=-DFAST_MATH_PRIMS -finline-functions -g -O
#CFLAGS=-m68000 -O -msoft-float
YFLAGS=-d

CSRC=data.c main.c sphere.c vector.c shade.c trace.c intersect.c\
	screen.c pic.c poly.c bound.c error.c pqueue.c cone.c\
	color.c antialiasing.c tri.c getopt.c

COBJ=data.o main.o sphere.o vector.o shade.o trace.o intersect.o\
	screen.o pic.o poly.o bound.o error.o pqueue.o cone.o\
	color.o antialiasing.o tri.o getopt.o

NFFFILES=balls.nff
DOCFILES=README ray.1 COPYING BIBLIO ALGORITHMS NFF GETOPT INSTALL
OSRC=nff.y tokens.l
OOBJ=nff.o tokens.o
HDRS=defs.h extern.h pic.h config.h
LIBS=-lm

$(PROG):	$(COBJ) $(OOBJ)
	$(CC) $(CFLAGS) -o $(PROG) $(COBJ) $(OOBJ) $(LIBS)

clean:
	rm -f $(COBJ) $(OOBJ)
	rm -f core tags

# This rule isn't guaranteed to work, it relies on gcc...
# to change in the final distributed version...

depend: 	$(CSRC) $(OSRC) $(HDR)
	sed '/^#DONT EDIT/,$$d' Makefile > Makefile.new
	echo "#DONT EDIT THIS, AUTOMATICALLY GENERATED#" >> Makefile.new
	$(CC) -MM $(CSRC) >> Makefile.new
	mv Makefile.new Makefile

lint:
	lint $(CSRC)

backup:
	-mkdir .backup
	cp $(CSRC) $(OSRC) $(HDR) Makefile .backup

newrevision:
	ci -t/dev/null $(CSRC) $(OSRC) Makefile ray.1 README $(HDRS)

kit:	$(CRSRC) $(OSRC) Makefile $(DOCFILES) $(NFFFILES) $(HDRS)
	rm -f Part*
	makekit $(CSRC) $(OSRC) Makefile $(DOCFILES) $(NFFFILES) $(HDRS)

#DONT EDIT THIS, AUTOMATICALLY GENERATED#
data.o : data.c defs.h config.h 
main.o : main.c defs.h config.h extern.h 
sphere.o : sphere.c defs.h config.h extern.h 
vector.o : vector.c defs.h config.h extern.h 
shade.o : shade.c defs.h config.h extern.h 
trace.o : trace.c defs.h config.h extern.h 
intersect.o : intersect.c defs.h config.h extern.h 
screen.o : screen.c defs.h config.h pic.h extern.h 
pic.o : pic.c pic.h defs.h config.h extern.h 
poly.o : poly.c defs.h config.h extern.h 
bound.o : bound.c defs.h config.h extern.h 
error.o : error.c defs.h config.h extern.h 
pqueue.o : pqueue.c defs.h config.h extern.h 
cone.o : cone.c defs.h config.h extern.h 
color.o : color.c defs.h config.h 
antialiasing.o : antialiasing.c defs.h config.h 
tri.o : tri.c defs.h config.h extern.h 
