
PROGRAM = MSM8996_DiamondVoice_ECNS_2mic_Lib_strip
DVEXE = dv.exe
EXEC = $(PROGRAM)
CC=/opt/toolchains/Qualcomm/HEXAGON_Tools/5.0.09/gnu/bin/qdsp6-gcc
AS=/opt/toolchains/Qualcomm/HEXAGON_Tools/5.0.09/gnu/bin/qdsp6-as
AR=/opt/toolchains/Qualcomm/HEXAGON_Tools/5.0.09/gnu/bin/qdsp6-ar
INCLUDES = -IMain -ILib/ECNS -ILib/Gain -ILib/HPF -ILib/DiamondVoice_Tx -IFixlib
QDSPARCH = -mv5 -DNOPRINT

CCF = -O2
CFLAGS = -Wall $(CCF) $(QDSPARCH) $(INCLUDES) 
LD = $(CC) $(CCF)
LDFLAGS = $(QDSPARCH)
LLIBS = -lqdsp
RM = rm -f

##################################################################
OBJ_DIR = DiamondVoiceTxFW
ECNSDIR = Lib/ECNS
DiamondVoiceTxDIR= Lib/DiamondVoice_Tx
MAINDIR = Main

###################################################################
ECNSSRCS = samsungTxECNS.c \
	SamsungTxECNSAlg.c \
	SamsungTxECNSRegression.c \
	SamsungRFFT128.c \
	SamsungRFFT256.c \
	SamsungRFFT512.c
	
DiamondVoiceTxSRCS = samsungDiamondVoiceECNSTx.c

MainSRC = main.c
###################################################################
OBJS =  $(DiamondVoiceTxOBJS) $(ECNSOBJS) 
MAINOBJ =  $(MainOBJS) $(DiamondVoiceTxOBJS) $(ECNSOBJS) 

ECNSOBJS = $(ECNSSRCS:%.c=$(OBJ_DIR)/%.o)
DiamondVoiceTxOBJS = $(DiamondVoiceTxSRCS:%.c=$(OBJ_DIR)/%.o)
MainOBJS = $(MainSRC:%.c=$(OBJ_DIR)/%.o)

clean:
	$(RM) $(OBJ_DIR)/*.o $(EXEC).lib $(DVEXE)

all: $(OBJS)
	$(LD) $(LDFLAGS) -o $@ $^ $(LLIBS)

lib: $(OBJS)
	$(AR) r $(EXEC).lib $(OBJS)

exe: $(MAINOBJ)
	$(LD) $(LDFLAGS) -o $(DVEXE) $^ $(LLIBS)

###################################################################
$(OBJ_DIR)/%.o: $(ECNSDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: $(DiamondVoiceTxDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: $(MAINDIR)/%.c
	$(CC) $(CFLAGS) -c -o $@ $<

$(OBJ_DIR)/%.o: %.c
	$(CC) $(CFLAGS) -c -o $@ $<