CC ?= gcc STRIP := strip NM := nm SRCTYPE ?= c OBJS = $(patsubst %.$(SRCTYPE),objs/%.o,$(notdir $(SRCS_LIST))) OBJS_P = $(patsubst %.o,%.P,$(OBJS)) APSDIR = $(shell echo `pwd` | sed 's/drivers\/.*\|aps\/.*/aps/g') #this path TOOLDIR only used by aps, so ignore driver path replacement; TOOLDIR = $(shell echo `pwd` | sed 's/aps\/.*/tools/') ifeq ($(CONFIG_ENABLE_UMF_MODULES), y) ifeq ($(CONFIG_MOD_PACK_MEDIA), y) modsegs += .media modsrc += $(MM_APP) $(MM_UIRESRCS) $(MM_MID) endif ifeq ($(CONFIG_MOD_PACK_RUNAV), y) modsegs += .ffmpeg endif ifeq ($(CONFIG_MOD_PACK_PICLIB), y) modsegs += .picture modsrc += $(PICTURE_MOD) endif ifeq ($(CONFIG_MOD_PACK_ATV), y) modsegs += .atv modsrc += $(ATV_APP) endif ifeq ($(CONFIG_MOD_PACK_DTV), y) modsegs += .dtv modsrc += $(DTV_APP) $(DTV_MID) endif ifeq ($(CONFIG_MOD_PACK_TT), y) modsegs += .teletext modsrc += $(TT_MOD) endif ifeq ($(CONFIG_MOD_PACK_SUB), y) modsegs += .subtitle modsrc += $(SUB_MOD) endif ifeq ($(CONFIG_ENABLE_UMF_LANGUAGE_MODULES), y) #langMode begin(This context is auto generated by ./tools/gen_LangMode.py please don't modify.) modsegs += .TV_IDL_Spanish modsegs += .TV_IDL_French modsegs += .TV_IDL_German modsegs += .TV_IDL_Italian modsegs += .TV_IDL_Portuguese modsegs += .TV_IDL_Polish modsegs += .TV_IDL_Russian modsegs += .TV_IDL_Finnish modsegs += .TV_IDL_Swedish modsegs += .TV_IDL_Greek modsegs += .TV_IDL_Dutch modsegs += .TV_IDL_English modsegs += .TV_IDL_Schinese #langMode end (please don't delete) endif endif $(TARGET_EXE): check_dir_objs $(OBJS) BUILD_MODULE @echo Building $@ ifeq (yy, $(findstring yy, ${BUILD_UMF}${CONFIG_ENABLE_UMF_MODULES})) @rm -fr umflink.ld @cpp -P umflink.ld.S -o umflink.ld ifeq ($(CONFIG_STATIC_UCLIBC),y) @echo 111111111111111 $(CROSS)$(CC) $(LDFLAGS) -Wl,-Map,$@.map -o $@ $(OBJS) $(EXTRA_OBJS) $(UCLIBCDIR)/usr/lib/libc.a -Tumflink.ld else $(CROSS)$(CC) $(LDFLAGS) -Wl,-Map,$@.map -o $@ $(OBJS) $(EXTRA_OBJS) -Tumflink.ld endif else ifeq ($(CONFIG_STATIC_UCLIBC),y) @echo 111111111111111 $(CROSS)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_OBJS) $(UCLIBCDIR)/usr/lib/libc.a else $(CROSS)$(CC) $(LDFLAGS) -o $@ $(OBJS) $(EXTRA_OBJS) endif endif ifeq ($(CONFIG_CORE_DUMP),y) @cp $@ $@.gdb endif ifeq ($(CONFIG_CALL_TRACE),y) @$(CROSS)$(NM) -n $@ > $(APSDIR)/middleware/trace/$@.symbol endif ifeq (yy, $(findstring yy, ${BUILD_UMF}${CONFIG_ENABLE_UMF_MODULES})) @mv $@ $@.full @$(CROSS)objdump -Chpr $@.full > $@.txt @rm -fr mod.info @$(PURECROSS)objcopy $(patsubst .%,--remove-section=.%,$(modsegs)) $@.full $@ @for modseg in $(modsegs); do \ $(PURECROSS)objcopy --only-section=$$modseg -O binary $@.full $@$$modseg || exit 1; \ $(TOOLDIR)/gen_compressmod.pl $(TOOLDIR)/lzma460/lzma $@$$modseg ./$@$$modseg.bin || exit 1; \ grep -nr $$modseg ./$@.txt | awk '{printf $$3" "$$4" "$$5}' >> ./mod.info; \ grep $${modseg}data_start ./$@.map | awk '{printf " "$$1}' >> ./mod.info; \ grep $${modseg}data_end ./$@.map | awk '{print " "$$1}' >> ./mod.info; \ done @$(CROSS)$(STRIP) $@.full endif @$(CROSS)$(STRIP) $@ $(TARGET_STATIC): check_dir_objs $(OBJS) @echo Building $@ @$(CROSS)ar cr $@ $(OBJS) $(EXTRA_OBJS) @$(CROSS)ranlib $@ $(TARGET_DYNAMIC): check_dir_objs $(OBJS) @echo Building $@ $(CROSS)$(CC) $(LDFLAGS) -shared -Wl,-soname,$@ -o $@ $(OBJS) $(EXTRA_OBJS) BUILD_MODULE: objs/%.o: %.$(SRCTYPE) @echo Compiling $< @$(CROSS)$(CC) -MMD -c -o $@ $(EXTRA_CFLAGS) $(CMPFLAGS) $(WRNFLAGS) $(CFLAGS) $(INCLUDE) $< ifeq ($(CONFIG_GCOV_APPLICATION),y) echo $< >> gcov_source_list endif # @cp $(*D)/objs/$(*F).d $(*D)/objs/$(*F).P; \ # sed -e 's/#.*//' -e 's/^[^:]*: *//' -e 's/ *\\$$//' \ # -e '/^$$/ d' -e 's/$$/ :/' < $(*D)/objs/$(*F).d >> $(*D)/objs/$(*F).P; \ # rm $(*D)/objs/$(*F).d modobjs = $(patsubst %.c,objs/%.o,$(modsrc)) $(modobjs):objs/%.o: %.c @echo Compiling $(MODULE_NAME) file: $< @$(CROSS)$(CC) -MMD -c -o $@ $(EXTRA_CFLAGS) $(CMPFLAGS) $(WRNFLAGS) $(CFLAGS) $(INCLUDE) $< @$(TOOLDIR)/rename_section $(PURECROSS)objdump $(PURECROSS)objcopy .text .$(MODULE_NAME).text ./objs/$*.o @$(TOOLDIR)/rename_section $(PURECROSS)objdump $(PURECROSS)objcopy .rodata .$(MODULE_NAME).rodata ./objs/$*.o @$(TOOLDIR)/rename_section $(PURECROSS)objdump $(PURECROSS)objcopy .data .$(MODULE_NAME).data ./objs/$*.o @$(TOOLDIR)/rename_section $(PURECROSS)objdump $(PURECROSS)objcopy .bss .$(MODULE_NAME).bss ./objs/$*.o modlanobjs = $(patsubst %.c,objs/%.o,$(modlansrc)) $(modlanobjs):objs/%.o: %.c $(CROSS)$(CC) -MMD -c -o $@ $(EXTRA_CFLAGS) $(CMPFLAGS) $(WRNFLAGS) $(CFLAGS) $(INCLUDE) $< echo kai $(basename $(