# Makefile for Geode

INCLUDE = -I/usr/X11R6/include/
LIBDIR  = -L/usr/X11R6/lib
LIBS = -lX11 -lXi -lXmu -lm -lGL -lGLU -lglut
ARGS = -g -pedantic -Wall #-pg

LIBOBJS = algebra.o physics.o simplicial.o render.o io.o hull.o profile.o integrator.o geodetest.o

HEADERS = simplicial.hpp algebra.hpp profile.hpp physics.hpp

TARGETS = bin/geodefunc

All: $(TARGETS)

clean:
	rm -f *.o core* *~ $(TARGETS) gmon.out

bin/geodefunc: geodefunc.o $(LIBOBJS)
	$(CC) $(ARGS) -o bin/geodefunc geodefunc.o $(LIBOBJS) $(LIBDIR) $(LIBS)

geodefunc.o: geodefunc.cpp $(HEADERS) io.hpp integrator.hpp render.hpp hull.hpp
	$(CC) $(ARGS) -c geodefunc.cpp $(INCLUDE)

geodetest.o: geodetest.cpp $(HEADERS) io.hpp integrator.hpp hull.hpp
	$(CC) $(ARGS) -c geodetest.cpp $(INCLUDE)

render.o: render.cpp $(HEADERS) io.hpp integrator.hpp render.hpp hull.hpp
	$(CC) $(ARGS) -c render.cpp $(INCLUDE)

profile.o: profile.cpp profile.hpp
	$(CC) $(ARGS) -c profile.cpp $(INCLUDE)

simplicial.o: simplicial.cpp $(HEADERS)
	$(CC) $(ARGS) -c simplicial.cpp $(INCLUDE)

io.o: io.cpp $(HEADERS) io.hpp
	$(CC) $(ARGS) -c io.cpp $(INCLUDE)

hull.o: hull.cpp $(HEADERS) hull.hpp
	$(CC) $(ARGS) -c hull.cpp $(INCLUDE)

algebra.o: algebra.cpp $(HEADERS)
	$(CC) $(ARGS) -c algebra.cpp $(INCLUDE)

physics.o: physics.cpp $(HEADERS)
	$(CC) $(ARGS) -c physics.cpp $(INCLUDE)

integrator.o: integrator.cpp $(HEADERS) integrator.hpp
	$(CC) $(ARGS) -c integrator.cpp $(INCLUDE)
