⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rules.tool

📁 VXWORKS源代码
💻 TOOL
字号:
# rules.tool - rules for extracting objects from toolchain libraries## modification history# --------------------# 01m,03dec01,sn   allow configlette rules to be used seperately from TOOL_LIB #                  extraction rules# 01l,13nov01,sn   include defs.exclude# 01k,07nov01,tam  removed LIBDIR & lib rule# 01j,06nov01,sn   prefix object file names to prevent clashes with VxWorks objects# 01i,15oct01,sn   moved GNU specific material to tool/defs.gnu# 01h,24jan01,sn   append a "marker symbol" to each module# 01h,18jan01,mem  Strip debug info from MIPS objects to work around VxGDB#                  issue.# 01g,15nov99,sn   wrote## DESCRIPTION# Generic rules for extracting objects from toolchain libraries.# Subdirectory Makefiles for specific toolchains should# set TOOL_LIBS and include this file.#include $(TGT_DIR)/h/make/rules.libraryGEN_CONFIG 	=  wtxtcl $(TGT_DIR)/src/tool/genConfig.tclOBJS_EXCLUDE    =  wtxtcl $(TGT_DIR)/src/tool/objsExclude.tclinclude $(TGT_DIR)/src/tool/$(TOOL_FAMILY)/defs.exclude# Compute PRE_OBJS (all objects except $(CONFIGLETTE_O))ifneq ($(TOOL_LIB),)ifeq ($(PRE_OBJS),)ifeq ($(REAL_OBJS),)REAL_OBJS	:= $(shell $(AR) t $(TOOL_LIB) | $(OBJS_EXCLUDE) $(EXCLUDE_OBJS))endif # REAL_OBJS undefined# We prefix each object file coming out of a toolchain library# with OBJ_PREFIX; the hope is that this will avoid clashes# with object files in the VxWorks library.PRE_OBJS := $(patsubst %,$(OBJ_PREFIX)%,$(REAL_OBJS))endif # PRE_OBJS undefinedendif # TOOL_LIB definedifneq ($(CONFIGLETTE_NAME),)CONFIGLETTE_O	= __$(CONFIGLETTE_NAME).oCONFIGLETTE_C	= $(LIBDIR)/__$(CONFIGLETTE_NAME).cendifOBJS		= $(PRE_OBJS) $(CONFIGLETTE_O)# rules.library only looks in the current directory for# source files when it determines the objects we can build.# In our case the objects have already been built in the# GNU build tree (in libgcc.a) and we just want to pull them out.PRE_LIBOBJS    = $(foreach file, $(PRE_OBJS), $(LIBDIR)/$(file)) LIBOBJS         = $(foreach file, $(OBJS), $(LIBDIR)/$(file))# On windows there needs to be a target called $(file)_clean for each file# in $(LIBOBJS).ifeq ($(WIND_HOST_TYPE),x86-win32)clean : $(foreach file,$(subst /,$(DIRCHAR),$(LIBOBJS) $(LOCAL_CLEAN)),$(file)_clean)$(foreach file,$(subst /,$(DIRCHAR),$(LIBOBJS) $(LOCAL_CLEAN)),$(file)_clean):	$(RM) $(subst _clean,,$@)endif# Repeat the work of rules.library with the correct object listobjs : $(LIBOBJS) Makefile$(subst /,$(DIRCHAR),$(TGT_DIR)/lib/$(LIBNAME)) : $(LIBOBJS)ifeq ($(WIND_HOST_TYPE),x86-win32)    SEMI=;else    SEMI=";"endifWRAPPER=$(LIBDIR)/_tmp_wrapper.cTMP_OBJ=$(LIBDIR)/_tmp_obj.oifneq ($(TOOL_LIB),)$(LIBDIR)/%.o : $(TOOL_LIB) Makefile	@echo Wrapping $@ ...	$(RM) $(subst /,$(DIRCHAR),$@)# This just adds a symbol __object_o to object.o. We chose# to use a one-line C fragment rather than using the linker# to directly add a symbol because this way we don't have# to worry about whether or not the compiler prepends an underscore.	echo char __$(subst -,_,$(notdir $*))_o = 0$(SEMI) > $(WRAPPER)ifeq ($(WIND_HOST_TYPE),x86-win32)	(cd $(LIBDIR) & $(AR) -x $(TOOL_LIB) $(patsubst $(OBJ_PREFIX)%,%,$(notdir $@)) & move $(patsubst $(OBJ_PREFIX)%,%,$(notdir $@)) $(notdir $@))else	(cd $(LIBDIR) ; \         $(AR) -x $(TOOL_LIB) $(patsubst $(OBJ_PREFIX)%,%,$(notdir $@)) ; \         mv $(patsubst $(OBJ_PREFIX)%,%,$(notdir $@)) $@)endif	$(CC) -c $(CFLAGS) $(WRAPPER) -o $(TMP_OBJ)	$(LD) $(LD_PARTIAL_FLAGS) -r $(TMP_OBJ) $@ -o $@_tmp	$(CP) $(subst /,$(DIRCHAR),$@_tmp) $(subst /,$(DIRCHAR),$@)	$(RM) $(WRAPPER) $(TMP_OBJ) $@_tmpendif # $(TOOL_LIB) definedifneq ($(CONFIGLETTE_O),)$(LIBDIR)/$(CONFIGLETTE_O) : $(PRE_LIBOBJS)	$(GEN_CONFIG) $(CONFIGLETTE_NAME) $(PRE_OBJS) > $(CONFIGLETTE_C)	$(CC) -c $(CFLAGS) $(CONFIGLETTE_C) -o $@	$(RM) $(CONFIGLETTE_C)endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -