CFLAG = -O -I../include -I../tinyxml -I/usr/local/include -I/usr/local/include/opencv -g
LDFLAG = -L../lib -L../tinyxml/lib -L/usr/local/lib -ltouchlib -ltinyxml -lcv -lcvaux -lcxcore -lhighgui -framework Carbon -framework GLUT -framework OpenGL -lobjc

AR = ar
ARFLAGS = -r
RANLIB = ranlib $@

IPATH = ../include

all: ../lib/libtouchlib.a

clean:
	rm -f *.o ../lib/libtouchlib.a ../bin/configapp ../bin/touchtest ../bin/test ../bin/sampleapp

TOUCHLIB_FILES = \
	CBlobTracker.o \
	CTouchScreen.o \
	TouchScreenDevice.o \
	BackgroundFilter.o \
	BrightnessContrastFilter.o \
	CvCaptureFilter.o \
	filter.o \
	FilterFactory.o \
	MonoFilter.o \
	RectifyFilter.o \
	ResizeFilter.o \
	SmoothingFilter.o

../lib/libtouchlib.a: ${TOUCHLIB_FILES}
	${AR} ${ARFLAGS} $@ ${TOUCHLIB_FILES}
	${RANLIB}

../bin/configapp: configapp.o ../lib/libtouchlib.a
	g++ -o ../bin/configapp configapp.o ${LDFLAG}

../bin/touchtest: touchtest.o ../lib/libtouchlib.a
	g++ -o ../bin/touchtest touchtest.o ${LDFLAG}

../bin/test: test.o ../lib/libtouchlib.a
	g++ -o ../bin/test test.o ${LDFLAG}

../bin/sampleapp: sampleapp.o ../lib/libtouchlib.a
	g++ -o ../bin/sampleapp sampleapp.o ${LDFLAG}

BackgroundFilter.o: BackgroundFilter.cpp ${IPATH}/BackgroundFilter.h
	g++ -c -o BackgroundFilter.o ${CFLAG} BackgroundFilter.cpp

BrightnessContrastFilter.o: BrightnessContrastFilter.cpp ${IPATH}/BrightnessContrastFilter.h
	g++ -c -o BrightnessContrastFilter.o ${CFLAG} BrightnessContrastFilter.cpp

CBlobTracker.o: CBlobTracker.cpp ${IPATH}/CBlobTracker.h
	g++ -c -o CBlobTracker.o ${CFLAG} CBlobTracker.cpp

CTouchScreen.o: CTouchScreen.cpp ${IPATH}/CTouchScreen.h ../tinyxml/lib/libtinyxml.a
	g++ -c -o CTouchScreen.o ${CFLAG} CTouchScreen.cpp

configapp.o: configapp.cpp ${IPATH}/Image.h ${IPATH}/ITouchListener.h
	g++ -c -o configapp.o ${CFLAG} configapp.cpp

CaptureFilter.o: CaptureFilter.cpp ${IPATH}/CaptureFilter.h
	g++ -c -o CaptureFilter.o ${CFLAG} CaptureFilter.cpp

CvCaptureFilter.o: CvCaptureFilter.cpp ${IPATH}/CvCaptureFilter.h
	g++ -c -o CvCaptureFilter.o ${CFLAG} CvCaptureFilter.cpp

filter.o: filter.cpp ${IPATH}/filter.h
	g++ -c -o filter.o ${CFLAG} filter.cpp

filterbrightnesscontrast.o: filterbrightnesscontrast.cpp ${IPATH}/filterbrightnesscontrast.h
	g++ -c -o filterbrightnesscontrast.o ${CFLAG} filterbrightnesscontrast.cpp

FilterFactory.o: FilterFactory.cpp ${IPATH}/FilterFactory.h
	g++ -c -o FilterFactory.o ${CFLAG} FilterFactory.cpp

MonoFilter.o: MonoFilter.cpp ${IPATH}/MonoFilter.h
	g++ -c -o MonoFilter.o ${CFLAG} MonoFilter.cpp

mousedriver.o: mousedriver.cpp ${IPATH}/mousedriver.h
	g++ -c -o mousedriver.o ${CFLAG} mousedriver.cpp

RectifyFilter.o: RectifyFilter.cpp ${IPATH}/RectifyFilter.h
	g++ -c -o RectifyFilter.o ${CFLAG} RectifyFilter.cpp

ResizeFilter.o: ResizeFilter.cpp ${IPATH}/ResizeFilter.h
	g++ -c -o ResizeFilter.o ${CFLAG} ResizeFilter.cpp

sampleapp.o: sampleapp.cpp
	g++ -c -o sampleapp.o ${CFLAG} sampleapp.cpp

SmoothingFilter.o: SmoothingFilter.cpp ${IPATH}/SmoothingFilter.h
	g++ -c -o SmoothingFilter.o ${CFLAG} SmoothingFilter.cpp

test.o: test.cpp
	g++ -c -o test.o ${CFLAG} test.cpp

textures.o: textures.cpp ${IPATH}/textures.h
	g++ -c -o textures.o ${CFLAG} textures.cpp

TouchScreenDevice.o: TouchScreenDevice.cpp ${IPATH}/TouchScreenDevice.h
	g++ -c -o TouchScreenDevice.o ${CFLAG} TouchScreenDevice.cpp

touchtest.o: touchtest.cpp
	g++ -c -o touchtest.o ${CFLAG} touchtest.cpp

VideoWrapperFilter.o: VideoWrapperFilter.cpp ${IPATH}/VideoWrapperFilter.h
	g++ -c -o VideoWrapperFilter.o ${CFLAG} VideoWrapperFilter.cpp

