CFLAGS = -Wall -g -O -fPIC -std=c++11 -DYOCTO_LINUX -DOSCL_EXPORT_REF= -DOSCL_IMPORT_REF=

include ../../../../omx_plugin/public.inc

INCLUDE_DIRS += \
    -I../../../../../Common/omx-components/video/hevc/enc \
    -I$(SYS_ROOT)/usr/include/memion \

ifeq ($(strip $(TARGET_BIA_SUPPORT)),true)
CFLAGS += -DCONFIG_BIA_SUPPORT
endif

OBJ_DIR ?= .

TARGET = $(OBJ_DIR)/libstagefright_sprd_h265enc.so

LIBS = -ldl -lmemion -lpthread

CXX_SRCS += \
    SPRDHEVCEncoderYocto.cpp \
    ../../../../omx_plugin/SprdVideoEncoderBase.cpp \
    ../../../../../Common/omx_plugin/SprdVideoEncoderOMXComponent.cpp \
    ../../../../../Common/omx-components/video/hevc/enc/SPRDHEVCEncoder.cpp \
    

ifeq ($(strip $(SUPPORT_RGB_ENC)),true)
    CFLAGS += -DCONFIG_RGB_ENC_SUPPORT
endif

C_OBJS = $(patsubst %.c,$(OBJ_DIR)/%.o,$(notdir $(C_SRCS)))
CXX_OBJS = $(patsubst %.cpp,$(OBJ_DIR)/%.o,$(notdir $(CXX_SRCS)))

OBJS = $(C_OBJS) $(CXX_OBJS)

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

$(C_OBJS):$(C_SRCS)
	$(foreach var,$^,\
		$(CC) $(CFLAGS) $(INCLUDE_DIRS) -c $(var) -o $(OBJ_DIR)/$(basename $(notdir $(var))).o ;\
	)

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

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

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