
PROGRAM = MSM8996_DiamondVoice_ECNS_2mic_Lib_strip
DVEXE = dnn2chNS
EXEC = $(PROGRAM)
CC=gcc
AR=ar

INCLUDES = -IMain -ILib/ECNS -ILib/DiamondVoice_Tx -IFixlib -Icommon/include


CCF = -O2 -DLinux_gcc_make -lm
CFLAGS = -Wall $(CCF) $(INCLUDES) -std=c99
LD = $(CC) $(CCF)
RM = rm -f

##################################################################
OBJ_DIR = Build
ECNSDIR = Lib/ECNS
DiamondVoiceTxDIR= Lib/DiamondVoice_Tx
BASICOPDIR = Fixlib

MAINDIR = Main

###################################################################
ECNSSRCS = \
	SamsungRFFT32.c \
	SamsungRFFT64.c \
	SamsungRFFT128.c \
	SamsungRFFT256.c \
	SamsungRFFT512.c \
	SamsungRFFT1024.c \
	samsungTxECNS.c \
	samsungTxECNS_HF.c \
	SamsungTxECNSAEC.c \
	SamsungTxECNSAlg.c \
	SamsungTxECNSFC.c \
	SamsungTxECNS_HF_FrameVAD.c \
	SamsungTxECNSPF_RES.c \
	SamsungTxECNSPF_v2f.c \
	SamsungTxECNSPF_v2f_HF.c \
	SamsungTxECNSRegression.c \
	SamsungTxECNSDNN.c \
	SamsungTxECNSBF_CGMM.c \
	SamsungTxECNSBF_CGMM_GEVD_fixed.c \
	SamsungTxECNSBF_CGMM_mat_op.c \
	SamsungTxECNSBF_CGMM_MMSE.c \
	SamsungTxECNSBF_CGMM_NTT_fix1.c \
	SamsungTxECNSBF_GSC.c \


BASICOP = basic_op.c \
	exp_fixed.c\
	fixlib.c \
	
	
DiamondVoiceTxSRCS = samsungDiamondVoiceECNSTx.c

MainSRC = main.c
###################################################################
OBJS =  $(DiamondVoiceTxOBJS) $(ECNSOBJS) ${BASICOPOBJS}
MAINOBJ =  $(MainOBJS) $(DiamondVoiceTxOBJS) $(ECNSOBJS) ${BASICOPOBJS}

ECNSOBJS = $(ECNSSRCS:%.c=$(OBJ_DIR)/%.o)
DiamondVoiceTxOBJS = $(DiamondVoiceTxSRCS:%.c=$(OBJ_DIR)/%.o)
MainOBJS = $(MainSRC:%.c=$(OBJ_DIR)/%.o)
BASICOPOBJS =  ${BASICOP:%.c=${OBJ_DIR}/%.o}

clean:
	$(RM) $(OBJ_DIR)/*.o $(EXEC).lib $(DVEXE)

all: $(OBJS)
	$(LD) -c -o $@ $^
	
lib: $(OBJS)
	$(AR) r $(EXEC).lib $(OBJS)

exe: $(MAINOBJ)
	$(LD) -o $(DVEXE) $^

###################################################################

$(OBJ_DIR)/%.o: $(BASICOPDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: $(DiamondVoiceTxDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<
	
$(OBJ_DIR)/%.o: $(ECNSDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: $(MAINDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<