CFLAGS = -Wall -g -O -fPIC -std=c++11 -fno-strict-aliasing -DYOCTO_LINUX -fprofile-arcs -ftest-coverage
LDFLAGS = -fprofile-arcs -ftest-coverage

INCLUDE_DIRS = -I$(SYS_ROOT)/usr/include/gstreamer-1.0 \
               -I$(SYS_ROOT)/usr/include/glib-2.0 \
               -I$(SYS_ROOT)/usr/lib/glib-2.0/include \
#               -I$(SYS_ROOT)/usr/lib/aarch64-linux-gnu/glib-2.0/include

ifeq ($(strip $(TARGET_BOARD_PLATFORM)),sp9863a)
CFLAGS += -DSUPPORT_DEC_M4V_H263 \
          -DSUPPORT_DEC_AVC \
          -DSUPPORT_DEC_HEVC \
          -DSUPPORT_DEC_VPX \
          -DSUPPORT_DEC_VP9
else ifeq ($(strip $(TARGET_BOARD_PLATFORM)),sp9832e)
CFLAGS += -DSUPPORT_DEC_M4V_H263 \
          -DSUPPORT_DEC_AVC
endif

OBJ_DIR ?= .

TARGET = $(OBJ_DIR)/utest_video_dec

LIBS = -ldl -pthread -lglib-2.0 -lgtest -lgtest_main -lgstreamer-1.0 -lgobject-2.0 -lgcov

SRCS = $(wildcard *.cpp)

OBJS = $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(notdir $(SRCS)))

all:$(OBJS)
	$(CXX) -o $(TARGET) $(OBJS) $(LIBS)

$(OBJS):$(SRCS)
	$(foreach var,$^,\
		$(CXX) $(CFLAGS) $(INCLUDE_DIRS) -c $(var) -o $(OBJ_DIR)/$(basename $(notdir $(var))).o ;\
	)

install:
	cp $(TARGET) $(INSTALL_MOD_PATH)/usr/bin

clean:
	rm -f $(OBJS)
	rm -f $(TARGET)