#This is a makefile for Tom to compile things on linux

UTILDIR = Utilities/


#LDLIBS is customized for Tom's folder setup with Gentoo and libraries.
#If anyone else wants to compile in linux, these will need updating
FLTK_LIB_DIR = /usr/lib/fltk-1.1/
FLTK_INC_DIR = /usr/include/fltk-1.1/
OPENGL_LIB_DIR = /usr/lib/opengl/nvidia/lib
LDLIBS = -L${FLTK_LIB_DIR} -L${OPENGL_LIB_DIR} -I${FLTK_INC_DIR} -lfltk -lfltk_gl -lGL -lGLU -ggdb

CC = g++
motion.exe: 3DUtils.o ArcBallCam.o Pnt3f.o MotionView.o MotionWindow.o CallBacks.o World.o BVH.o Concat.o Blend.o Main.cpp
	${CC} ${LDLIBS} -Wall -o motion.exe 3DUtils.o ArcBallCam.o Pnt3f.o MotionView.o MotionWindow.o CallBacks.o World.o BVH.o Concat.o Blend.o Main.cpp


#build the Utilities files
3DUtils.o : ${UTILDIR}3DUtils.cpp ${UTILDIR}3DUtils.h
	${CC} ${LDLIBS} -Wall -c -o 3DUtils.o ${UTILDIR}3DUtils.cpp

ArcBallCam.o: ${UTILDIR}ArcBallCam.cpp ${UTILDIR}ArcBallCam.h
	${CC} ${LDLIBS} -Wall -c -o ArcBallCam.o ${UTILDIR}ArcBallCam.cpp

Pnt3f.o: ${UTILDIR}Pnt3f.h ${UTILDIR}Pnt3f.cpp
	${CC} ${LDLIBS} -Wall -c -o Pnt3f.o ${UTILDIR}Pnt3f.cpp

#Now for the rest of the project files...
#The FLTK Window classes:

MotionView.o: MotionView.cpp
	${CC} ${LDLIBS} -Wall -c -o MotionView.o MotionView.cpp

MotionWindow.o: MotionWindow.h MotionWindow.cpp 
	${CC} ${LDLIBS} -Wall -c -o MotionWindow.o MotionWindow.cpp

CallBacks.o: CallBacks.h CallBacks.cpp
	${CC} ${LDLIBS} -Wall -c -o CallBacks.o CallBacks.cpp

World.o: World.h World.cpp
	${CC} ${LDLIBS} -Wall -c -o World.o World.cpp


#Some meat and potatoes (boil em, mash em, stick em in a stew)

BVH.o: BVH.h BVH.cpp
	${CC} ${LDLIBS} -Wall -c -o BVH.o BVH.cpp

Concat.o: Concat.h Concat.cpp ${UTILDIR}Quaternion.h
	${CC} ${LDLIBS} -Wall -c -o Concat.o Concat.cpp

Blend.o: Blend.h Blend.cpp ${UTILDIR}Quaternion.h
	${CC} ${LDLIBS} -Wall -c -o Blend.o Blend.cpp



clean:
	rm *.o
