# Project: slideapp

# openFrameworks top-level directory
OFDIR = $(PWD)/../../..

DEFS += LINUX
CPP  = g++ 
CC   = gcc

# __OBJECTS__
 # CORE openFrameworks
OBJ += obj/ofAppRunner.o
OBJ += obj/ofSerial.o
OBJ += obj/ofGraphics.o obj/ofImage.o obj/ofTexture.o obj/ofTrueTypeFont.o
OBJ += obj/ofSoundPlayer.o obj/ofSoundStream.o
OBJ += obj/ofMath.o
OBJ += obj/ofUtils.o 
OBJ += obj/ofUCUtils.o
OBJ += obj/ofVideoGrabber.o
OBJ += obj/ofVideoPlayer.o
#~ # ADDON ofxDirList
#~ OBJ += obj/ofxDirList.o
#~ # ADDON ofxNetwork
#~ OBJ += obj/ofxTCPClient.o obj/ofxTCPManager.o obj/ofxTCPServer.o obj/ofxUDPManager.o
#~ # ADDON ofxObjLoader
#~ OBJ += obj/ofxObjLoader.o
#~ # ADDON ofxOpenCv
#~ OBJ += obj/ofxCvColorImage.o obj/ofxCvContourFinder.o obj/ofxCvFloatImage.o obj/ofxCvGrayscaleImage.o obj/ofxCvImage.o
# ADDON ofxOsc
OBJ += obj/ofxOscMessage.o obj/ofxOscReceiver.o obj/ofxOscSender.o
#~ # ADDON ofxThread
#~ OBJ += obj/ofxThread.o
#~ #of ADDON oxVectorGraphics
#~ OBJ += obj/CreEPS.o obj/ofxVectorGraphics.o
# ADDON ofxXmlSettings
OBJ += obj/tinyxml.o obj/tinyxmlerror.o obj/tinyxmlparser.o obj/ofxXmlSettings.o
# PROJECT
OBJ += obj/main.o
OBJ += obj/slideApp.o
OBJ += obj/textdisplay.o
OBJ += obj/markov.o


# __LINKER__
LDFLAGS = -L$(OFDIR)/libs/fmodex/lib

LIBS = -lfmodex
LIBS += -lraw1394
LIBS += -lglut
LIBS += -lGL
LIBS += -lGLU
LIBS += -lXxf86vm
LIBS += -lasound
LIBS += $(OFDIR)/libs/freetype/lib/libfreetype.a
LIBS += $(OFDIR)/libs/FreeImage/libfreeimage.a
LIBS += $(OFDIR)/libs/rtAudio/RtAudio.o
LIBS += $(OFDIR)/libs/fobs/lib/libfobs.a
LIBS += $(OFDIR)/libs/glee/GLee.o
LIBS += $(OFDIR)/libs/ffmpeg/libavcodec/libavcodec.so
LIBS += $(OFDIR)/libs/ffmpeg/libavformat/libavformat.so
LIBS += $(OFDIR)/libs/ffmpeg/libavutil/libavutil.so
LIBS += $(OFDIR)/addons/ofxOsc/libs/oscpack/lib/linux/liboscpack.so.1.0.2
#~ LIBS += $(OFDIR)/addons/ofxOpenCv/libs/opencv/lib/linux/libcv.so.1.0.0
#~ LIBS += $(OFDIR)/addons/ofxOpenCv/libs/opencv/lib/linux/libcxcore.so.1.0.0
LIBS += $(OFDIR)/libs/unicap/lib/libdcam.a
LIBS += $(OFDIR)/libs/unicap/lib/libunicap.a
LIBS += $(OFDIR)/libs/unicap/lib/libv4l.a
LIBS += $(OFDIR)/libs/unicap/lib/libv4l2.a
LIBS += $(OFDIR)/libs/unicap/lib/libvid21394.a

# __INCLUDES__
 # CORE openFrameworks
INCS = -I$(OFDIR)/libs/openFrameworks
INCS += -I$(OFDIR)/libs/openFrameworks/app
INCS += -I$(OFDIR)/libs/openFrameworks/communication
INCS += -I$(OFDIR)/libs/openFrameworks/graphics
INCS += -I$(OFDIR)/libs/openFrameworks/video
INCS += -I$(OFDIR)/libs/openFrameworks/utils
INCS += -I$(OFDIR)/libs/openFrameworks/sound
 # CORE external libraries
INCS += -I$(OFDIR)/libs/rtAudio
INCS += -I$(OFDIR)/libs/fmodex/inc
INCS += -I$(OFDIR)/libs/glee/include
INCS += -I$(OFDIR)/libs/glee/
INCS += -I$(OFDIR)/libs/freeimage/Source
INCS += -I$(OFDIR)/libs/FreeImage
INCS += -I$(OFDIR)/libs/fobs/inc
INCS += -I$(OFDIR)/libs/alsa/include
INCS += -I$(OFDIR)/libs/alsa/include/alsa
INCS += -I$(OFDIR)/libs/freetype/include
INCS += -I$(OFDIR)/libs/freetype/include/freetype2
INCS += -I$(OFDIR)/libs/unicap/include
INCS += -I/usr/include
INCS += -I/usr/include/GL
INCS += -I$(OFDIR)/libs/ffmpeg/libavcodec
INCS += -I$(OFDIR)/libs/ffmpeg/libavutil
 # ADDONS
INCS += -I$(OFDIR)/addons
#~ # ADDON ofxDirList
#~ INCS += -I$(OFDIR)/addons/ofxDirList/src
#~ # ADDON ofxNetwork
#~ INCS += -I$(OFDIR)/addons/ofxNetwork/src
#~ # ADDON ofxObjLoader
#~ INCS += -I$(OFDIR)/addons/ofxObjLoader/src
#~ # ADDON ofxOpenCv
#~ INCS += -I$(OFDIR)/addons/ofxOpenCv
#~ INCS += -I$(OFDIR)/addons/ofxOpenCv/src
#~ INCS += -I$(OFDIR)/addons/ofxOpenCv/libs/opencv/include
# ADDON ofxOsc
INCS += -I$(OFDIR)/addons/ofxOsc/libs/oscpack/include/ip
INCS += -I$(OFDIR)/addons/ofxOsc/libs/oscpack/include/osc
INCS += -I$(OFDIR)/addons/ofxOsc/src
#~ # ADDON ofxThread
#~ INCS += -I$(OFDIR)/addons/ofxThread/src
#~ # ADDON ofxVectorMath
#~ INCS += -I$(OFDIR)/addons/ofxVectorMath/src
#~ #of ADDON oxVectorGraphics
#~ INCS += -I$(OFDIR)/addons/ofxVectorGraphics/src
#~ INCS += -I$(OFDIR)/addons/ofxVectorGraphics/libs
# ADDON ofxXmlSettings
INCS += -I$(OFDIR)/addons/ofxXmlSettings/src
INCS += -I$(OFDIR)/addons/ofxXmlSettings/libs


# __RULES__
# project name
PROG =  slideapp

BIN  = 	bin/$(PROG)
CXXFLAGS = -D$(DEFS) $(INCS) -Wno-multichar  
RM = rm -f

.PHONY: all all-before all-after clean clean-custom

all: 	all-before $(BIN) all-after
	cp -r $(OFDIR)/export/libs bin
	cp $(OFDIR)/export/clickToLaunchApp.sh bin
	sed -i 's/applicationName/'$(PROG)'/g' bin/clickToLaunchApp.sh

clean: clean-custom
	${RM} $(OBJ) $(BIN)
	rm -rf bin/libs
	rm -rf bin/clickToLaunchApp.sh

$(BIN): $(OBJ)
	$(CPP) $(LDFLAGS)  -o $(BIN) obj/*.o $(LIBS)

 # CORE openFrameworks
obj/ofAppRunner.o: $(OFDIR)/libs/openFrameworks/app/ofAppRunner.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/app/ofAppRunner.cpp -o obj/ofAppRunner.o $(CXXFLAGS)

obj/ofSerial.o: $(OFDIR)/libs/openFrameworks/communication/ofSerial.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/communication/ofSerial.cpp -o obj/ofSerial.o $(CXXFLAGS)

obj/ofGraphics.o: $(OFDIR)/libs/openFrameworks/graphics/ofGraphics.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/graphics/ofGraphics.cpp -o obj/ofGraphics.o $(CXXFLAGS)

obj/ofImage.o: $(OFDIR)/libs/openFrameworks/graphics/ofImage.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/graphics/ofImage.cpp -o obj/ofImage.o $(CXXFLAGS)

obj/ofTexture.o: $(OFDIR)/libs/openFrameworks/graphics/ofTexture.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/graphics/ofTexture.cpp -o obj/ofTexture.o $(CXXFLAGS)

obj/ofTrueTypeFont.o: $(OFDIR)/libs/openFrameworks/graphics/ofTrueTypeFont.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/graphics/ofTrueTypeFont.cpp -o obj/ofTrueTypeFont.o $(CXXFLAGS)

obj/ofSoundPlayer.o: $(OFDIR)/libs/openFrameworks/sound/ofSoundPlayer.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/sound/ofSoundPlayer.cpp -o obj/ofSoundPlayer.o $(CXXFLAGS)

obj/ofSoundStream.o: $(OFDIR)/libs/openFrameworks/sound/ofSoundStream.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/sound/ofSoundStream.cpp -o obj/ofSoundStream.o $(CXXFLAGS)

obj/ofMath.o: $(OFDIR)/libs/openFrameworks/utils/ofMath.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/utils/ofMath.cpp -o obj/ofMath.o $(CXXFLAGS)
	
obj/ofUtils.o: $(OFDIR)/libs/openFrameworks/utils/ofUtils.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/utils/ofUtils.cpp -o obj/ofUtils.o $(CXXFLAGS)
	
obj/ofUCUtils.o: $(OFDIR)/libs/openFrameworks/video/ofUCUtils.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/video/ofUCUtils.cpp -o obj/ofUCUtils.o $(CXXFLAGS)

obj/ofVideoGrabber.o: $(OFDIR)/libs/openFrameworks/video/ofVideoGrabber.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/video/ofVideoGrabber.cpp -o obj/ofVideoGrabber.o $(CXXFLAGS)

obj/ofVideoPlayer.o: $(OFDIR)/libs/openFrameworks/video/ofVideoPlayer.cpp
	$(CPP) -c $(OFDIR)/libs/openFrameworks/video/ofVideoPlayer.cpp -o obj/ofVideoPlayer.o $(CXXFLAGS)


#~ # ADDON ofxDirList
#~ obj/ofxDirList.o: $(OFDIR)/addons/ofxDirList/src/ofxDirList.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxDirList/src/ofxDirList.cpp -o obj/ofxDirList.o $(CXXFLAGS)

#~ # ADDON ofxNetwork
#~ obj/ofxTCPClient.o: $(OFDIR)/addons/ofxNetwork/src/ofxTCPClient.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxNetwork/src/ofxTCPClient.cpp -o obj/ofxTCPClient.o $(CXXFLAGS)

#~ obj/ofxTCPManager.o: $(OFDIR)/addons/ofxNetwork/src/ofxTCPManager.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxNetwork/src/ofxTCPManager.cpp -o obj/ofxTCPManager.o $(CXXFLAGS)

#~ obj/ofxTCPServer.o: $(OFDIR)/addons/ofxNetwork/src/ofxTCPServer.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxNetwork/src/ofxTCPServer.cpp -o obj/ofxTCPServer.o $(CXXFLAGS)

#~ obj/ofxUDPManager.o: $(OFDIR)/addons/ofxNetwork/src/ofxUDPManager.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxNetwork/src/ofxUDPManager.cpp -o obj/ofxUDPManager.o $(CXXFLAGS)

#~ # ADDON ofxObjLoader
#~ obj/ofxObjLoader.o: $(OFDIR)/addons/ofxObjLoader/src/ofxObjLoader.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxObjLoader/src/ofxObjLoader.cpp -o obj/ofxObjLoader.o $(CXXFLAGS)

#~ # ADDON ofxOpenCv
#~ obj/ofxCvColorImage.o: $(OFDIR)/addons/ofxOpenCv/src/ofxCvColorImage.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxOpenCv/src/ofxCvColorImage.cpp -o obj/ofxCvColorImage.o $(CXXFLAGS)

#~ obj/ofxCvContourFinder.o: $(OFDIR)/addons/ofxOpenCv/src/ofxCvContourFinder.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxOpenCv/src/ofxCvContourFinder.cpp -o obj/ofxCvContourFinder.o $(CXXFLAGS)

#~ obj/ofxCvFloatImage.o: $(OFDIR)/addons/ofxOpenCv/src/ofxCvFloatImage.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxOpenCv/src/ofxCvFloatImage.cpp -o obj/ofxCvFloatImage.o $(CXXFLAGS)

#~ obj/ofxCvGrayscaleImage.o: $(OFDIR)/addons/ofxOpenCv/src/ofxCvGrayscaleImage.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxOpenCv/src/ofxCvGrayscaleImage.cpp -o obj/ofxCvGrayscaleImage.o $(CXXFLAGS)

#~ obj/ofxCvImage.o: $(OFDIR)/addons/ofxOpenCv/src/ofxCvImage.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxOpenCv/src/ofxCvImage.cpp -o obj/ofxCvImage.o $(CXXFLAGS)

# ADDON ofxOsc
obj/ofxOscMessage.o: $(OFDIR)/addons/ofxOsc/src/ofxOscMessage.cpp
	$(CPP) -c $(OFDIR)/addons/ofxOsc/src/ofxOscMessage.cpp -o obj/ofxOscMessage.o $(CXXFLAGS)

obj/ofxOscReceiver.o: $(OFDIR)/addons/ofxOsc/src/ofxOscReceiver.cpp
	$(CPP) -c $(OFDIR)/addons/ofxOsc/src/ofxOscReceiver.cpp -o obj/ofxOscReceiver.o $(CXXFLAGS)

obj/ofxOscSender.o: $(OFDIR)/addons/ofxOsc/src/ofxOscSender.cpp
	$(CPP) -c $(OFDIR)/addons/ofxOsc/src/ofxOscSender.cpp -o obj/ofxOscSender.o $(CXXFLAGS)

#~ # ADDON ofxThread
#~ obj/ofxThread.o: $(OFDIR)/addons/ofxThread/src/ofxThread.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxThread/src/ofxThread.cpp -o obj/ofxThread.o $(CXXFLAGS)

#~ #of ADDON oxVectorGraphics
#~ obj/CreEPS.o: $(OFDIR)/addons/ofxVectorGraphics/libs/CreEPS.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxVectorGraphics/libs/CreEPS.cpp -o obj/CreEPS.o $(CXXFLAGS)

#~ obj/ofxVectorGraphics.o: $(OFDIR)/addons/ofxVectorGraphics/src/ofxVectorGraphics.cpp
	#~ $(CPP) -c $(OFDIR)/addons/ofxVectorGraphics/src/ofxVectorGraphics.cpp -o obj/ofxVectorGraphics.o $(CXXFLAGS)

# ADDON ofxXmlSettings
obj/tinyxml.o: $(OFDIR)/addons/ofxXmlSettings/libs/tinyxml.cpp
	$(CPP) -c $(OFDIR)/addons/ofxXmlSettings/libs/tinyxml.cpp -o obj/tinyxml.o $(CXXFLAGS)
	
obj/tinyxmlerror.o: $(OFDIR)/addons/ofxXmlSettings/libs/tinyxmlerror.cpp
	$(CPP) -c $(OFDIR)/addons/ofxXmlSettings/libs/tinyxmlerror.cpp -o obj/tinyxmlerror.o $(CXXFLAGS)
	
obj/tinyxmlparser.o: $(OFDIR)/addons/ofxXmlSettings/libs/tinyxmlparser.cpp
	$(CPP) -c $(OFDIR)/addons/ofxXmlSettings/libs/tinyxmlparser.cpp -o obj/tinyxmlparser.o $(CXXFLAGS)

obj/ofxXmlSettings.o: $(OFDIR)/addons/ofxXmlSettings/src/ofxXmlSettings.cpp
	$(CPP) -c $(OFDIR)/addons/ofxXmlSettings/src/ofxXmlSettings.cpp -o obj/ofxXmlSettings.o $(CXXFLAGS)



# PROJECT
obj/main.o: src/main.cpp
	$(CPP) -c src/main.cpp -o obj/main.o $(CXXFLAGS)

obj/slideApp.o: src/slideApp.cpp
	$(CPP) -c src/slideApp.cpp -o obj/slideApp.o $(CXXFLAGS)
	
obj/textdisplay.o: src/textdisplay.cpp
	$(CPP) -c src/textdisplay.cpp -o obj/textdisplay.o $(CXXFLAGS)
	
obj/markov.o: src/markov.cpp
	$(CPP) -c src/markov.cpp -o obj/markov.o $(CXXFLAGS)
	