################################################################ # DST MW 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 OBJ_DIR = $(CUR_DIR)/../obj #$(warning OBJ_DIR is '$(OBJ_DIR)') TARGET = $(TOP_DIR)/obj/libdstdmw.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 # DMW_SRC := # just to emphasize in source insight's syntax-highliting DMW_SRC += \ $(DMW_DIR)/src/System/DMW_Dummy.c \ $(DMW_DIR)/src/System/DMW_Main.c \ $(DMW_DIR)/src/System/DMW_Mutex.c \ $(DMW_DIR)/src/System/DMW_MsgQue.c \ $(DMW_DIR)/src/System/DMW_Timer.c \ $(DMW_DIR)/src/System/DMW_SysTime.c \ $(DMW_DIR)/src/System/DMW_CodeConv.c \ $(DMW_DIR)/src/System/DMW_NvRam.c \ $(DMW_DIR)/src/psi/DMW_PsiSdds.c \ $(DMW_DIR)/src/psi/DMW_PsiEngine.c \ $(DMW_DIR)/src/psi/DMW_PsiDatabase.c \ $(DMW_DIR)/src/psi/DMW_PsiUtil.c \ $(DMW_DIR)/src/psi/DMW_PsiLinkedList.c \ $(DMW_DIR)/src/psi/DMW_PsiTask.c \ $(DMW_DIR)/src/psi/DMW_PsiAPI.c \ $(DMW_DIR)/src/EPG/DMW_EpgBase.c \ $(DMW_DIR)/src/EPG/DMW_EpgDebug.c \ $(DMW_DIR)/src/EPG/DMW_EpgInterface.c \ $(DMW_DIR)/src/EPG/DMW_EpgRating.c \ $(DMW_DIR)/src/EPG/DMW_EpgVersion.c \ $(DMW_DIR)/src/EPG/DMW_RfDownload.c \ $(DMW_DIR)/src/Channel/DMW_Channel.c \ $(DMW_DIR)/src/Channel/DMW_ChannelTask.c \ $(DMW_DIR)/src/Channel/DMW_ChannelUtil.c \ $(DMW_DIR)/src/Channel/DMW_ChannelAV.c \ $(DMW_DIR)/src/Channel/DMW_ChannelCSD.c \ $(DMW_DIR)/src/Channel/DMW_ChannelDB.c \ $(DMW_DIR)/src/Channel/DMW_ChannelDemux.c \ $(DMW_DIR)/src/Channel/DMW_ChannelFreq.c \ $(DMW_DIR)/src/Channel/DMW_ChannelHAL.c \ $(DMW_DIR)/src/Channel/DMW_ChannelScan.c \ $(DMW_DIR)/src/Channel/DMW_ChannelTune.c \ $(DMW_DIR)/src/Channel/DMW_ChannelVer.c \ $(DMW_DIR)/src/Channel/DMW_Mcm.c \ $(DMW_DIR)/src/Channel/DMW_Ucm.c \ $(DMW_DIR)/src/cc/cc_ddi_mstar.c \ $(DMW_DIR)/src/cc/cc_main.c \ $(DMW_DIR)/src/cc/app_cc.c \ $(DMW_DIR)/src/cc/cc_display.c \ $(DMW_DIR)/src/cc/cc_exec_608.c \ $(DMW_DIR)/src/cc/cc_exec_708.c \ $(DMW_DIR)/src/cc/cc_front.c \ $(DMW_DIR)/src/cc/cc_user.c \ $(DMW_DIR)/src/cc/cc_util.c \ $(DMW_DIR)/src/cc/cc_win.c \ $(DMW_DIR)/src/grp/DMG_Draw.c \ $(DMW_DIR)/src/grp/DMG_Menu.c \ $(DMW_DIR)/src/grp/DMG_Util.c \ $(DMW_DIR)/src/grp/BMF.c \ $(DMW_DIR)/src/grp/grp_jungle.c \ $(DMW_DIR)/src/grp/jungle_font/utfOutline.c \ $(DMW_DIR)/src/grp/jungle_font/utfStruct.c # $(DMW_DIR)/src/EPG/DMW_EpgUtil.c \ $(DMW_DIR)/src/EPG/DMW_EpgMgtMgr.c \ $(DMW_DIR)/src/EPG/DMW_Xds.c \ $(DMW_DIR)/src/EPG/DMW_EIA608B.c \ # cafrii bugfix. relative path should be based on source code. so, use absolute path. SRC_DIR += \ $(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 INC_DIRS += \ $(DHL_DIR)/src \ $(DHL_DIR)/api/include \ $(DLIB_DIR)/src/si \ $(DLIB_DIR)/src/osx \ $(DLIB_DIR)/src/PNG \ $(DLIB_DIR)/src/ZLIB # 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)) DMW_OBJS = $(foreach DMW_SRC, $(DMW_SRC), $(OBJ_DIR)/$(notdir $(DMW_SRC:.c=.o))) # # The targets # .PHONY : all dmw clean clean-dmw all : dmw # skip showing cflags for simple output. dmw : checkobjdir $(DMW_OBJS) #show_cflags $(Q_)$(ECHO) "++++++++ Archiving \"$(notdir $(TARGET))\" Library" $(Q_)rm -f $(TARGET) $(Q_)$(AR) crus $(TARGET) $(DMW_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-dmw: $(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