# What?
#DIRTDIR = /home/sean/dirt
DIRTDIR = .
ODIR = $(DIRTDIR)/o/
BINDIR = $(DIRTDIR)/bin
CCC = /usr/bin/g++
CC = /usr/bin/gcc
CFLAGS = -c -g
# -I/usr/local/share/lib/g++-include
LFLAGS = -lm 
PUREOPTS = -log-file=purify.log -view-file=purify.pv
MDFLAGS = -p$(ODIR)
HDRS = lights.h matrix.h ray.h surfaces.h mainloop.h ppmutil.h shader.h globals.h surfprops.h csg.h
SRCS = main.cc matrix.cc ray.cc mainloop.cc surfaces.cc lights.cc shader.cc ppmutil.cc surfprops.cc csg.cc
OBJECTS = $(SRCS:%cc=$(ODIR)%o)
#OBJECTS = $(SRCS:S/cc/o/g:S/^/$(ODIR)/g)

dirt: $(OBJECTS)
	#purify $(PUREOPTS) $(CC) $(OBJECTS) -o dirt $(LFLAGS)
	$(CCC) $(OBJECTS) -o dirt $(LFLAGS)
csgtest: o/matrix.o o/ray.o o/mainloop.o o/surfaces.o o/lights.o o/shader.o o/ppmutil.o o/surfprops.o o/csg.o
	$(CCC) $(CFLAGS) o/matrix.o o/ray.o o/mainloop.o o/surfaces.o o/lights.o o/shader.o o/ppmutil.o o/csgtest.o o/surfprops.o o/csg.o -o csgtest $(LFLAGS)
$(ODIR)ray.o: ray.cc
	$(CCC) $(CFLAGS) ray.cc -o $(ODIR)ray.o
$(ODIR)mainloop.o: mainloop.cc ray.h mainloop.h
	$(CCC) $(CFLAGS) mainloop.cc -o $(ODIR)mainloop.o
$(ODIR)main.o: main.cc
	$(CCC) $(CFLAGS) main.cc -o $(ODIR)main.o
$(ODIR)matrix.o: matrix.cc matrix.h
	$(CCC) $(CFLAGS) matrix.cc -o $(ODIR)matrix.o
$(ODIR)surfaces.o: surfaces.h shader.h surfaces.cc
	$(CCC) $(CFLAGS) surfaces.cc -o $(ODIR)surfaces.o
$(ODIR)lights.o: lights.h lights.cc
	$(CCC) $(CFLAGS) lights.cc -o $(ODIR)lights.o
$(ODIR)shader.o: shader.h shader.cc
	$(CCC) $(CFLAGS) shader.cc -o $(ODIR)shader.o
$(ODIR)ppmutil.o: ppmutil.h ppmutil.cc
	$(CCC) $(CFLAGS) ppmutil.cc -o $(ODIR)ppmutil.o
$(ODIR)surfprops.o: surfprops.h surfprops.cc
	$(CCC) $(CFLAGS) surfprops.cc -o $(ODIR)surfprops.o
$(ODIR)csg.o: csg.h csg.cc
	$(CCC) $(CFLAGS) csg.cc -o $(ODIR)csg.o
clean: 
	rm -f $(ODIR)*.o *~
depend:
	makedepend $(MDFLAGS) -- $(CFLAGS) -- $(SRCS)

# DO NOT DELETE THIS LINE -- make depend depends on it.
