# Copyright 2018 NXP
#

#***************************************************************************
#
# DSP Framework Makefile
#
# **************************************************************************
export CCACHE=
ifeq ($(USE_CCACHE), 1)
	CCACHE=$(shell which ccache)
endif
CC          = $(CCACHE) xt-xcc
CPLUS       = $(CCACHE) xt-xc++
OBJCOPY     = xt-objcopy
PKG_LOADLIB = xt-pkg-loadlib
XTENSA_CORE = hifi4_nxp_v3_3_1_2_dev

TOOL_PATH   := $(dir $(realpath $(firstword $(MAKEFILE_LIST))))../../../imx-audio-toolchain/Xtensa_Tool
CORE_LIB_DIR  = core_lib
CODEC_WRAPPER_DIR = codec_wrapper
RELEASE_DIR = release

CFLAGS  = -O3

ifeq ($(DEBUG), 1)
	CFLAGS += -DDEBUG
endif
ifeq ($(TIME_PROFILE), 1)
	CFLAGS += -DTIME_PROFILE
endif
export CC CPLUS OBJCOPY XTENSA_CORE PKG_LOADLIB TOOL_PATH CFLAGS


SRC_DIR     = ./src
INC_DIR     = ./include
INCLUDE_DIR = ../include
LIB_DIR     = ../../../release/lib/dsp
CODECWRAP   = lib_dsp_codec_wrap_ext.so

SYSTEM_DIR  = $(TOOL_PATH)/builds/RF-2016.4-linux/hifi4_nxp_v3_3_1_2_dev/config

CFLAGS      += -mlongcalls -fmessage-length=0 -DPROC_hifi4_nxp_v3_3_1_2_dev       \
			  -DCONFIG_hifi4_nxp_v3_3_1_2_dev --xtensa-core=$(XTENSA_CORE)         \
			  --xtensa-system=$(SYSTEM_DIR)

CPLUS_FLAGS = -mlsp=pisplitload -Wl,--shared-pagesize=128 -Wl,-pie          \
			  --xtensa-system=$(SYSTEM_DIR) --xtensa-core=$(XTENSA_CORE) -Wl,--hash-style=gnu -lgcc -lc

INCLUDES    = -I$(INC_DIR)
INCLUDES   += -I$(INCLUDE_DIR) -I../../../ghdr/

# Put common C files here
C_OBJS      = $(SRC_DIR)/fsl_dsp_codec_common.o              \
			  $(SRC_DIR)/fsl_dsp_codec_wrap.o                \
			  $(SRC_DIR)/ogg_interface_package.o                \
			  $(SRC_DIR)/mp3_interface_package.o                \
			  $(SRC_DIR)/debug.o


all: $(C_OBJS)
	mkdir -p $(LIB_DIR)
	$(CPLUS) $(C_OBJS) $(CPLUS_FLAGS) -o $(CODECWRAP)
	cp $(CODECWRAP) $(LIB_DIR)/

%.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<


clean:
	rm -f $(SRC_DIR)/*.o
	rm -f ./*.so
