.PHONY:  clean
GDB ?= FALSE
ifeq ($(GDB), TRUE)
	OPTFLAG = -g
else
	OPTFLAG = -O3
endif

CC :=gcc
LD :=g++
PARENTDIR := $(CURDIR)/../
SRCDIR := ./
BUILDDIR := ./
TARGET := NETINT_HEIC_convertor
SRCEXT:=cpp
SOURCES:=$(shell find $(SRCDIR) -type f -name "*.$(SRCEXT)")
XCODER_INCLUDE_DIR := /usr/local/inlcude#/usr/include/x86_64-linux-gnu
XCODER_LIB_DIR := /usr/local/lib#/usr/lib/x86_64-linux-gnu
HEIF_WRITER_INCLUDE_DIR := $(PARENTDIR)/265ToHeif/Srcs/writer
HEIF_COMMON_DIR := $(PARENTDIR)/265ToHeif/Srcs/common
HEIF_WRITERAPP_INCLUDE_DIR := $(PARENTDIR)/265ToHeif/Srcs/writerapp
HEIF_PARSER_DIR := $(PARENTDIR)/265ToHeif/Srcs/parser
HEIF_PARSER_AVC_DIR := $(PARENTDIR)/265ToHeif/Srcs/parser/avcparser
HEIF_PARSER_HEVC_DIR := $(PARENTDIR)/265ToHeif/Srcs/parser/h265parser
HEIF_JSON_INCLUDE_DIR := $(PARENTDIR)/265ToHeif/Srcs/jsonlib
#HEIF_READER_INCLUDE_DIR := $(HOME)/$(PARENTDIR)/265ToHeif/Srcs/reader
HEIF := $(PARENTDIR)/265ToHeif/
SOURCES := $(SOURCES) $(shell find  $(PARENTDIR)/265ToHeif -type f -name "*.$(SRCEXT)")  
#IGNORE := $(HOME)/$(PARENTDIR)/265ToHeif/build/CMakeFiles/3.5.1/CompilerIdCXX/CMakeCXXCompilerId.cpp
IGNORE := $(shell find $(PARENTDIR)/265ToHeif/build/ -name \*.cpp)
SOURCES := $(filter-out $(IGNORE) , $(SOURCES))
MEDIAS:= *.yuv *.h264 *.h265
#SOURCES := FileSource.$(SRCEXT) ICodec.$(SRCEXT) Decoder.$(SRCEXT) Decoder_Test.$(SRCEXT) Encoder.$(SRCEXT) Encoder_Test.$(SRCEXT) API_Device_Test.$(SRCEXT) apitest_main.$(SRCEXT)
OBJECTS:=$(patsubst $(SRCDIR)/%, $(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.o))
INCLUDE_DIR := /usr/local/inlcude#/usr/include/x86_64-linux-gnu
LIB_DIR := /usr/local/lib#/usr/lib/x86_64-linux-gnu

XCODER_LIB_DIR :=  /usr/local/lib
DEP:=$(OBJECTS:%.o=%.d)
CPPFLAGS := -Wno-write-strings -Wno-unused-variable -fexceptions -fPIC -Wall -c -std=c++11 -I $(INCLUDE_DIR) -I $(SRCDIR)  -I $(XCODER_INCLUDE_DIR) -I $(HEIF) -I $(HEIF_WRITER_INCLUDE_DIR) -I $(HEIF_WRITERAPP_INCLUDE_DIR) ${OPTFLAG} \
-I $(HEIF_JSON_INCLUDE_DIR) -I $(HEIF_COMMON_DIR) -I $(HEIF_PARSER_DIR) -I $(HEIF_PARSER_HEVC_DIR) -I $(HEIF_PARSER_AVC_DIR)
LDFLAGS := -lm  -L $(LIB_DIR) -L $(XCODER_LIB_DIR)  -Wall -Wextra -lxcoder -lrt -lavformat -lavcodec -lavutil -lpthread -Wl,--no-as-needed -ldl -lswscale -lswresample 
.DEFAULT_GOAL := $(TARGET)

-include $(DEP)

$(TARGET):$(OBJECTS)
    
	@echo "Linking..."
	@echo $(SOURCES)
   # @echo "$(LD) $^ -o $(TARGET) $(LIB)"
	$(LD) $(OBJECTS) $(LDFLAGS) -o $(BUILDDIR)$(TARGET)

%.o:$(SRCDIR)/%.$(SRCEXT)
	@echo "$(SOURCES)"
    #@echo "$(CC) $(CFLAGS) $(INC) -c -o $@ $<"
	$(CC) $(CPPFLAGS) -MM -MT $@ -MF $(patsubst %.o, %.d, $@) $<
	$(CC) $(CPPFLAGS)  -c -o $@ $<
	
#all:
#    $(TARGET):$(OBJECTS)
#	@echo "Linking..."
#   # @echo "$(LD) $^ -o $(TARGET) $(LIB)"
#	$(LD) $(OBJECTS) $(LDFLAGS) -o $(BUILDDIR)$(TARGET)

clean:
	@echo "cleaning...";
	$(RM) -r $(OBJECTS) $(DEP) $(TARGET)
.PHONY:clean
