##############################
# Makefile
##############################

CC = gcc
CPP = g++
CFLAGS= -Wall -Wno-deprecated -g3 

INC = -I/opt/local/include/
LDFLAGS = -L/opt/local/lib/

LIBGSL = -lgsl -lgslcblas
LIBGL = -framework GLUT -framework OpenGL
LIB = -lboost_math_tr1
BIN = 	rrtGraph test_utils
# test_prob test_tree test_node test_traj test_belief testReadFile rrtGraph viewer testReadFile test_mllnode test_graph

all:	$(BIN)

clean:
	@echo "Cleaning up directory."
	rm -f $(BIN) *.o

# executables
viewer: viewer.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIBGL) $(LIB)

rrtGraph: rrtGraph.cc beliefState.o rrtProblem.o rrtUtils.o tree.o node.o mllnode.o cmdline.o traj.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIBGSL) $(LIB)

test_mllnode: test_mllnode.cc mllnode.o cmdline.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB)

testReadFile: testReadFile.cc rrtProblem.o rrtUtils.o tree.o beliefState.o node.o mllnode.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_prob: test_prob.cc beliefState.o traj.o rrtProblem.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_belief: test_belief.cc beliefState.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_traj: test_traj.cc beliefState.o traj.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_node: test_node.cc node.o  beliefState.o mllnode.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_tree: test_tree.cc tree.o node.o beliefState.o mllnode.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_utils: test_utils.cc rrtUtils.o traj.o tree.o node.o beliefState.o mllnode.o rrtProblem.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

test_graph: test_graph.cc traj.o tree.o node.o beliefState.o mllnode.o rrtProblem.o
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) $^ -o $@ $(LIB) $(LIBGSL)

# object files
mllnode.o: mllnode.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

node.o: node.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

beliefState.o: beliefState.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

rrtProblem.o: rrtProblem.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

tree.o: tree.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

traj.o: traj.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@

rrtUtils.o: rrtUtils.cc
	$(CPP) $(CFLAGS) $(INC) $(LDFLAGS) -c $^ -o $@ $(LIB)

cmdline.o: cmdline.c
	$(CC) $(INC) $(LDFLAGS) -c $^ -o $@


