################################################################ # DST APP Makefile # ################################################################/ # set TOP_DIR variable at the head of each makefile. # this is "ROOT" of source tree. # TOP_DIR = ../.. CUR_DIR = . #$(warning TOP_DIR is '$(TOP_DIR)') DST_PLATFORM_DEFINES += \ CA_TYPE=NONE \ NDS_LIB=NONE \ XRPC_MODULES_SERVER \ QC_svpldi \ QC_reset \ QC_qc_tests \ QC_nskldi \ QC_nskhal \ QC_harm_tests \ QC_cahdiver \ SOCKET_GLUE_SERVER \ MS_C_STDLIB \ MS_BOARD_TYPE_SEL=BD_MST124A_D01A_S \ MS_DVB_TYPE_SEL=INTERNAL_DVBT \ ENABLE_DEBUG=1 \ STB_ENABLE=1 \ FBL_ENABLE=0 \ MBOOT_LOGO_ENABLE=0 \ MSOS_TYPE_ECOS \ ENABLE_AESDMA \ MS_DEBUG DHL_DIR = $(TOP_DIR)/dhl DLIB_DIR = $(TOP_DIR)/dlib DMW_DIR = $(TOP_DIR)/dmw APP_DIR = $(TOP_DIR)/app OBJ_DIR = $(CUR_DIR)/../obj #$(warning OBJ_DIR is '$(OBJ_DIR)') TARGET = $(TOP_DIR)/obj/libdstapp.a # include cross-compiler definitions # cafrii 090715, use our own tools.mak for easy customization. include $(TOP_DIR)/build/tools.mak CFLAGS += $(foreach i,$(DST_PLATFORM_DEFINES),-D$(i)) # # Source files # APP_SRC_C := # just to emphasize in source insight's syntax-highliting APP_SRC_C += \ $(APP_DIR)/src/Function/App_Fnc_Audio.c \ $(APP_DIR)/src/Function/App_Fnc_AutoScan.c \ $(APP_DIR)/src/Function/App_Fnc_CC.c \ $(APP_DIR)/src/Function/App_Fnc_ChTune.c \ $(APP_DIR)/src/Function/App_Fnc_DigitKeyProc.c \ $(APP_DIR)/src/Function/App_Fnc_EA2.c \ $(APP_DIR)/src/Function/App_Fnc_EPG.c \ $(APP_DIR)/src/Function/App_Fnc_NvRam.c \ $(APP_DIR)/src/Function/App_Fnc_Pod.c \ $(APP_DIR)/src/Function/App_Fnc_Power.c \ $(APP_DIR)/src/Function/App_Fnc_Rating.c \ $(APP_DIR)/src/Function/App_Fnc_RfUpdate.c \ $(APP_DIR)/src/Function/App_Fnc_RRT.c \ $(APP_DIR)/src/Function/App_Fnc_Sdds2.c \ $(APP_DIR)/src/Function/App_Fnc_SignalMonitor.c \ $(APP_DIR)/src/Function/App_Fnc_Time.c \ $(APP_DIR)/src/Function/App_Fnc_Ucm.c \ $(APP_DIR)/src/Function/App_Fnc_Video.c \ $(APP_DIR)/src/Function/App_Fnc_Comm.c \ $(APP_DIR)/src/Function/App_Fnc_Dummy.c \ $(APP_DIR)/src/Main/App_Debug.c \ $(APP_DIR)/src/Main/App_Main.c \ $(APP_DIR)/src/Main/App_Version.c \ $(APP_DIR)/src/Main/App_Map.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Banner.c \ $(APP_DIR)/src/kview/OSD/App_OSD_ChEdit.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Common.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Epg2.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Main.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Pod.c \ $(APP_DIR)/src/kview/OSD/App_OSD_RRT.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Scan.c \ $(APP_DIR)/src/kview/OSD/App_OSD_Factory.c \ $(APP_DIR)/src/kview/OSD/App_OSD_SetupWizard.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Banner.c \ $(APP_DIR)/src/kview/Proc/App_Proc_CC.c \ $(APP_DIR)/src/kview/Proc/App_Proc_ChEdit.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Epg2.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Etc.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Html.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Idle.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Init.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Main.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Rating.c \ $(APP_DIR)/src/kview/Proc/App_Proc_RRT.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Scan.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Power.c \ $(APP_DIR)/src/kview/Proc/App_Proc_Factory.c \ $(APP_DIR)/src/kview/Proc/App_Proc_ServiceMenu.c \ $(APP_DIR)/src/kview/Proc/App_Proc_SetupWizard.c \ $(APP_DIR)/src/kview/Resource/App_Res_Png.c # cafrii bugfix. relative path should be based on source code. so, use absolute path. SRC_DIR += \ $(APP_DIR)/src/Main \ $(APP_DIR)/src/Function \ $(APP_DIR)/src/kview/OSD \ $(APP_DIR)/src/kview/Proc \ $(APP_DIR)/src/kview/Resource INC_DIRS += \ $(DHL_DIR)/src \ $(DHL_DIR)/api/include \ $(DLIB_DIR)/src/si \ $(DLIB_DIR)/src/osx \ $(DLIB_DIR)/src/uiofilter \ $(DLIB_DIR)/src/PNG \ $(DLIB_DIR)/src/ZLIB \ $(DMW_DIR)/src/include \ $(DMW_DIR)/src/System \ $(DMW_DIR)/src/EPG \ $(DMW_DIR)/src/Channel \ $(DMW_DIR)/src/EPG \ $(DMW_DIR)/src/psi \ $(DMW_DIR)/src/cc \ $(DMW_DIR)/src/grp \ $(DMW_DIR)/src/grp/jungle_font \ $(DMW_DIR)/src/grp/BMF # SRC_DIR °ú INC_DIRS¸¦ ±¸ºÐÇØ¼­ »ç¿ëÇÑ´Ù. # SRC_DIRÀº VPATH ¿¡ Ãß°¡µÇ°í, INC_DIRS´Â CFLAGS ¿¡ -Ixx ¿Í °°Àº ÇüÅ·ΠÃß°¡µÈ´Ù. # VPATH = $(SRC_DIR) #vpath %.h $(VPATH) #vpath %.c $(VPATH) #vpath %.S $(VPATH) CFLAGS += $(addprefix -I,$(SRC_DIR)) $(addprefix -I,$(INC_DIRS)) APP_OBJS = $(foreach APP_SRC_C, $(APP_SRC_C), $(OBJ_DIR)/$(notdir $(APP_SRC_C:.c=.o))) # # The targets # .PHONY : all app clean clean-app all : app # skip showing cflags for simple output. app : checkobjdir $(APP_OBJS) #show_cflags $(Q_)$(ECHO) "++++++++ Archiving \"$(notdir $(TARGET))\" Library" $(Q_)rm -f $(TARGET) $(Q_)$(AR) crus $(TARGET) $(APP_OBJS) show_cflags : $(Q_)$(ECHO) CFLAGS = $(filter-out -I% -D%, $(CFLAGS)) $(OBJ_DIR)/%.o: %.c $(CC) $(CFLAGS) -c $< -o $@ # $(Q_)$(CCDV) $(CC) $(CFLAGS) -c $< -o $@ # dependency¸¦ Çѹø¿¡ ¸¸µé¾îÁÖÁö ¸øÇϹǷÎ, º°µµÀÇ cc ÀÛ¾÷À» ÅëÇØ .d ÆÄÀÏ »ý¼ºÇÑ´Ù. # armcc °¡ »ý¼ºÇÑ rule¿¡´Â ¸ðµÎ backslash°¡ »ç¿ëµÇ¾î¼­ À̸¦ slash·Î Ä¡È¯ÇØÁà¾ß ÇÔ. # ccdv°¡ °É·¯Áá´ø ¸Þ½ÃÁö°¡ ¿©±â¼­´Â º¸ÀÏ ¼ö ÀÖÀ½. stderr Ãâ·ÂÀº º¸ÀÌÁö ¾Êµµ·Ï ¸·ÀÚ. # $(Q_)$(CC) -M $(CFLAGS) -c $< -o $@ 2> /dev/null | sed 's,\\,/,g' > $(patsubst %.o,%.d,$@) clean clean-app: $(Q_)$(RM) -f $(TARGET) $(OBJ_DIR)/*.o $(OBJ_DIR)/*.d $(OBJ_DIR)/*.map $(OBJ_DIR)/*~ core $(OBJ_DIR)/*.elf $(OBJ_DIR)/*.bin $(OBJ_DIR)/*.dis $(OBJ_DIR)/*.lst $(Q_)$(RM) -f $(CONFIG_TMP) checkobjdir: $(Q_)test -d $(OBJ_DIR) || (echo "mkdir $(OBJ_DIR)"; mkdir -p $(OBJ_DIR)) $(Q_)test -d $(TOP_DIR)/obj || (echo "mkdir $(TOP_DIR)/obj"; mkdir -p $(TOP_DIR)/obj) # # Include all the depends # -include $(OBJ_DIR)/*.d