BIN = .

CC = gcc
CXX = g++
LIB_SRC = ../libsrc
LIB = ../lib
v_LIB = /usr/lib
#vision_LIB = -L/usr/lib -lhighgui -lcxcore -lcvaux -lcv -lXext -lX11 -lm -lpthread
INCLUDE = ../include
INCPATH = /usr/include/opencv
CFLAGS = -g -O3 -Wall -I$(INCLUDE) -I$(INCPATH) -L$(LIB) -L$(v_LIB) -D_REENTRANT
LFLAGS = -lPMan -lRTV
VLFLAGS = -lhighgui -lcxcore -lcvaux -lcv -lXext -lX11 -lm -lpthread
# set the include path for OpenCV


#vision_SOURCES = SerialPort.cpp SerialPort.h cvision.cpp cvision.h data.h \
	#message.cpp message.h vision.cpp visiondefs.h

LIBS = $(LIB)/libPMan.a $(LIB)/libRTV.a
v_LIBS = $(v_LIB)/libhighgui.a $(v_LIB)/libcxcore.a $(v_LIB)/libcvaux.a $(v_LIB)/libcv.a $(v_LIB)/libpthread.a

HEADERS = visiondefs.h pmandefs.h sem_utils.h cvision.h

PROGS = calib_color im_proc obj_track ctrl im_acq

OBJECTS = calib_color.o im_proc.o obj_track.o ctrl.o im_acq.o

all:
	cd $(LIB_SRC); $(MAKE) 
	$(MAKE) progs

progs: $(PROGS)

# Main programs
calib_color: calib_color.cpp $(LIBS)
	$(CXX) $(CFLAGS) -o calib_color calib_color.cpp $(LFLAGS) $(VLFLAGS)

im_proc: im_proc.cpp defs.h $(LIBS) $(v_LIBS)
	$(CXX) $(CFLAGS) -o im_proc im_proc.cpp $(LFLAGS) $(VLFLAGS)

obj_track: obj_track.cpp defs.h $(LIBS) $(v_LIBS)
	$(CXX) $(CFLAGS) -o obj_track obj_track.cpp $(LFLAGS) $(VLFLAGS)

ctrl: ctrl.cpp defs.h $(LIBS) $(v_LIBS)
	$(CXX) $(CFLAGS) -o ctrl ctrl.cpp $(LFLAGS) $(VLFLAGS)

im_acq: im_acq.cpp defs.h $(LIBS) $(v_LIBS)
	$(CC) $(CFLAGS) -o im_acq im_acq.cpp $(LFLAGS) $(VLFLAGS)

#Object files

#im_proc.o: im_proc.c
#	$(CC) -c $(INCPATH) $(LIBS) $(vision_LIBS) im_proc.c

#obj_track: obj_track.c
#	$(CC) $(CFLAGS) -o obj_track obj_track.c $(LFLAGS)

#ctrl: ctrl.c
#	$(CC) $(CFLAGS) -o ctrl ctrl.c $(LFLAGS)

#im_acq: im_acq.c
#	$(CC) $(CFLAGS) -o im_acq im_acq.c $(LFLAGS)

clean:
	cd $(LIB_SRC); $(MAKE) clean
	rm -f $(PROGS)

