HEXAGON_TOOLS_INSTALL_DIR ?= /local/tools/hexagon/8.1.02
HVX_UTIL_INCDIR ?= /usr2/smithg/tt/hexagon/include

SRC_DIR = ../..
MODEL_DIR = ..

GPP ?= g++
GPP_LD ?= g++

WARNS = -Wall -Wno-unused-function -Wno-unused-variable -Wno-unused-label
 
HEXAGON_LIBNATIVE = $(HEXAGON_TOOLS_INSTALL_DIR)/Tools/libnative
HEXAGON_BIN_DIR = $(HEXAGON_TOOLS_INSTALL_DIR)/Tools/bin
HEXAGON_SIM = $(HEXAGON_BIN_DIR)/hexagon-sim 
HEXAGON_PROF = $(HEXAGON_BIN_DIR)/hexagon-profiler
HEXAGON_CPP = $(HEXAGON_BIN_DIR)/hexagon-clang

GPP_OPTS = -O2 $(WARNS)

OCV_LIBS = $(addprefix -lopencv_, core imgproc imgcodecs highgui)


OBJ_LN2 = $(addsuffix .LN2.o, validate_warp  warp_block8_hvx)  hvx_warpmodel.o

all: validate_warp_LN2


validate_warp_LN2: $(OBJ_LN2)
	$(GPP_LD) -o $@  -L$(HEXAGON_LIBNATIVE)/lib $(OBJ_LN2) $(OCV_LIBS) -lnative


validate_warp.LN2.o: validate_warp.cpp $(MODEL_DIR)/hvx_warpmodel.hpp
	$(GPP) -c -o $@ $(GPP_OPTS)   -D__HVXDBL__=1 -I $(MODEL_DIR) -I$(SRC_DIR) -I$(HVX_UTIL_INCDIR) -I$(HEXAGON_LIBNATIVE)/include $<




warp_block8_hvx.LN2.o: $(SRC_DIR)/warp_block8_hvx.cpp
	$(GPP) -c -o $@ $(GPP_OPTS) -D__HVXDBL__=1 -I $(MODEL_DIR) -I$(SRC_DIR) -I$(HVX_UTIL_INCDIR) -I$(HEXAGON_LIBNATIVE)/include $<


hvx_warpmodel.o: $(MODEL_DIR)/hvx_warpmodel.cpp $(MODEL_DIR)/hvx_warpmodel.hpp
	$(GPP) -c -o $@ $(GPP_OPTS) -I $(MODEL_DIR) $<



clean : 
	rm -f *.o
