
#*****************************************************************************
#
# aacplus_dec Test Application Makefile
#
#*****************************************************************************
ifeq "$(DECODER_TYPE)" "AAC_LC"
  CODEC=aac_dec
else
  CODEC=aacplus_dec
endif



include ../../build/Makefile_test.init

CFLAGS += -DCT_CONF



ifeq ($(TGT_OS),ELINUX)
  ifeq ($(TIME_PROFILE),1)
		CFLAGS += -DTIME_PROFILE
  endif
  ifeq ($(TGT_CPU),ARM11)
        CFLAGS   += -DMPEG4 -DARM_OPT_MACROS -DLC
        ifeq ($(ALSA_TEST),1)
             CFLAGS += -DALSA
             LIBRARY += ../../common/lib/libasound.so
        endif
    ifeq ($(LIB_TYPE),DYNAMIC)
        LIBRARY += ../../release/lib/lib_aac_dec_arm11_elinux.so
    endif
    ifeq ($(LIB_TYPE),STATIC)
        LIBRARY += ../../release/lib/lib_aac_dec_arm11_elinux.a
    endif
  endif
  ifeq ($(TGT_CPU),ARM9)
        CFLAGS   += -DMPEG4 -DARM_OPT_MACROS -DLC
        ifeq ($(ALSA_TEST),1)
             CFLAGS += -DALSA
             LIBRARY += ../../common/lib/libasound.so
        endif
    ifeq ($(LIB_TYPE),DYNAMIC)
        LIBRARY += ../../release/lib/lib_aac_dec_arm9_elinux.so
    endif
    ifeq ($(LIB_TYPE),STATIC)
        LIBRARY += ../../release/lib/lib_aac_dec_arm9_elinux.a
    endif
  endif
endif

ifeq ($(TGT_OS),UNIX)
   CFLAGS  += -DUNIX -g
endif



#ifeq ($(TGT_OS),LERVDS)

 ifeq ($(TGT_CPU),ARM12)
      CFLAGS += -DCORTEX_A8
      ifeq ($(SOC_PROFILE),TRUE)
           CFLAGS += -DSOC_PROFILE
      endif
 endif
ifeq ($(TGT_OS),LERVDS)

  CFLAGS  += -O0 -DARM_ADS  -DSINGLE_VECTOR -DFLEXIBLE_VECTOR_PATH --inline --autoinline --forceinline --enum_is_int #-DDISCARD_OUTPUT #
  ifeq ($(TIME_PROFILE),1)
        CFLAGS += -DTIME_PROFILE_RVDS
        CFLAGS += -DMEASURE_STACK_USAGE -DMEASURE_HEAP_USAGE
        COMMON_DIR_C = ../../common/c_src
        C_OBJS += $(COMMON_DIR_C)/profile_utils.o
        INCLUDES += -I./c_src
  endif
  ifeq ($(MX31ADS_STANDALONE),1)
        AFLAGS += --PD "MX31ADS SETL {TRUE}"
        LFLAGS += --scatter ../../common/asm_arm/mx31/scat_a.txt --entry 0x80080000
        ifeq ($(LEVEL2_PAGE),1)
            AFLAGS += --PD "L2_TTB SETL {TRUE}"
        endif
  endif
  ifeq ($(MX353DS_STANDALONE),1)
        AFLAGS += --PD "MX353DS SETL {TRUE}"
        LFLAGS += --scatter ../../common/asm_arm/mx35/scat_a.txt --entry 0x80080000
        ifeq ($(LEVEL2_PAGE),1)
             AFLAGS += --PD "L2_TTB SETL {TRUE}"
         endif
  endif

        LFLAGS +=  --info sizes,totals --info libraries --info unused --symbols --map --list ./aacd_arm.map
endif


 C_OBJS = $(APP_DIR)/aacplus_main.o
 C_OBJS +=$(APP_DIR)/aacplus_aux.o
 C_OBJS += $(APP_DIR)/aacplus_portio.o

ifeq ($(TGT_CPU),ARM12)
      ifeq ($(SOC_PROFILE),TRUE)
           C_OBJS +=$(APP_DIR)/aac_array.o
      endif
endif
ifeq ($(TGT_OS),LERVDS)
     ifeq ($(TIME_PROFILE),1)
          C_OBJS += ../../common/c_src/profile_utils.o
     endif

     ifeq ($(MX31ADS_STANDALONE),1)
          C_OBJS += ../../common/c_src/retarget.o
          ASM_OBJS += ../../common/asm_arm/mx31/initmmu.o
          ASM_OBJS += ../../common/asm_arm/mx31/ttb.o
     endif

     ifeq ($(MX353DS_STANDALONE),1)
           C_OBJS += ../../common/c_src/retarget.o
           ASM_OBJS += ../../common/asm_arm/mx35/initmmu.o
           ASM_OBJS += ../../common/asm_arm/mx35/ttb.o
     endif
endif

ifeq ($(TGT_CPU),ARM11)
     C_OBJS += $(APP_DIR)/aacplus_log_api.o
endif


ifeq ($(TGT_OS),UNIX)
     ALL_OBJS = $(C_OBJS)
else
     ALL_OBJS = $(C_OBJS) $(ASM_OBJS)
endif


ifeq ($(TGT_OS),LERVDS)
  ifeq ($(TGT_CPU),ARM12)
    ALL_OBJS += ../../common/asm_arm/Init_Cortex.o \
		    ../../common/asm_arm/InitCache_Cortex.o \
		    ../../common/asm_arm/Vectors.o \
		    ../../common/c_src/retarget_Cortex.o
    LIBRARY += lib_aac_dec_arm12_lervds.a
  endif
  ifeq ($(TGT_CPU),ARM11)
    LIBRARY += lib_aac_dec_arm11_lervds.a
  endif
  ifeq ($(TGT_CPU),ARM9)
    LIBRARY += lib_aac_dec_arm9_lervds.a
  endif
endif


all: LIBRARY_COPY TEST_$(TGT_CPU)_$(TGT_OS)
	@echo "--- Build-all done for library $(CODEC) ---"

LIBRARY_COPY:
ifndef DBG
 ifeq ($(LIB_TYPE),STATIC)
	cp $(LIB_DIR)/lib_$(CODEC)_$(TGT_CPU_BIN)_$(TGT_OS_BIN).a  ./
	cp $(LIB_DIR)/lib_aac_dec_$(TGT_CPU_BIN)_$(TGT_OS_BIN).a  ./
 else
	cp $(LIB_DIR)/lib_$(CODEC)_$(TGT_CPU_BIN)_$(TGT_OS_BIN).so ./
	cp $(LIB_DIR)/lib_aac_dec_$(TGT_CPU_BIN)_$(TGT_OS_BIN).so ./
 endif
endif

#Build the library


TEST_ARM12_LERVDS:	$(ALL_OBJS) $(LIBRARY)
		$(LN) -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(LIBRARY)
TEST_ARM11_LERVDS:	$(ALL_OBJS) $(LIBRARY)
		$(LN) -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(LIBRARY)
TEST_ARM9_LERVDS:	$(ALL_OBJS) $(LIBRARY)
		$(LN) -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(LIBRARY)

TEST_ARM11_UNIX:	$(ALL_OBJS) $(LIBRARY)
		$(LN) -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(LIBRARY)




TEST_ARM11_ELINUX: $(ALL_OBJS) $(subst $(LIB_DIR)/,,$(LIBRARY))
		$(LN) -W1,x -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(subst $(LIB_DIR)/,,$(LIBRARY))
TEST_ARM9_ELINUX: $(ALL_OBJS) $(subst $(LIB_DIR)/,,$(LIBRARY))
		$(LN) -W1,x -o $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(subst $(LIB_DIR)/,,$(LIBRARY))




TEST_X86_UNIX	: $(ALL_OBJS) $(LIBRARY)
		g++ -o  $(PROGRAM) $(LFLAGS) $(ALL_OBJS) $(LIBRARY)


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

%.o: %.s
	$(AS) $(AFLAGS) -o $@ $<


clean:
	rm -f $(ALL_OBJS) $(PROGRAM) $(PROGRAM).map main.in
