CXX := g++

SRCDIR := $(shell pwd)
BINDIR := ${SRCDIR}/bin

INCPATH := -I${SRCDIR}/include/mo_stereo_camera
INCPATH += -I${SRCDIR}/include/mo_stereo_camera_reserved
INCPATH += -I${SRCDIR}/sample/include
LIBPATH := -Wl,-rpath,'$$ORIGIN:$$ORIGIN/lib:$$ORIGIN/../lib:/opt/MoakCV/OpenCV/x86_64/3.4.7/lib' -L${SRCDIR}/lib

LIBS := -lmoStereoCameraDriver

COMMONSRC := ${SRCDIR}/sample/source/common_function.cpp

#WANNA_USE_OPENCV := NO
WANNA_USE_OPENCV := YES
ifeq (${WANNA_USE_OPENCV},YES)
    EXTRA_CFLAGS := -DWANNA_USE_OPENCV
    LIBS         += -lopencv_highgui -lopencv_core -lopencv_imgproc -lopencv_imgcodecs 
    # set correct path of OpenCV
    INCPATH      += -I/opt/MoakCV/OpenCV/x86_64/3.4.7/include
    LIBPATH      += -L/opt/MoakCV/OpenCV/x86_64/3.4.7/lib
endif

RAW_SRC     := ${SRCDIR}/sample/source/get_raw_sample.cpp
RECTIFY_SRC := ${SRCDIR}/sample/source/get_rectify_sample.cpp
RGBD_SRC    := ${SRCDIR}/sample/source/get_rgbd_sample.cpp
SET_SRC     := ${SRCDIR}/sample/source/set_camera_sample.cpp

.PHONY:all
all:
	@[ -d ${BINDIR} ] || mkdir -p ${BINDIR}
	${CXX} ${RAW_SRC}     ${COMMONSRC} ${INCPATH} ${LIBPATH} ${LIBS} ${EXTRA_CFLAGS} -o ${BINDIR}/get_raw_sample
	${CXX} ${RECTIFY_SRC} ${COMMONSRC} ${INCPATH} ${LIBPATH} ${LIBS} ${EXTRA_CFLAGS} -o ${BINDIR}/get_rectify_sample 
	${CXX} ${RGBD_SRC}    ${COMMONSRC} ${INCPATH} ${LIBPATH} ${LIBS} ${EXTRA_CFLAGS} -o ${BINDIR}/get_rgbd_sample
	${CXX} ${SET_SRC}     ${COMMONSRC} ${INCPATH} ${LIBPATH} ${LIBS} ${EXTRA_CFLAGS} -o ${BINDIR}/set_camera_sample 

.PHONY:clean
clean:
	${RM} -rf ${BINDIR}

