Rev 283 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
################################################################################ Module name : TOOLSET/KeilArmV3# Module type : Makefile system# Environment(s): KeilArmV3#####################################################################################################################################################.. Remove "undef" warnings#cc_includes +=cc_defines +=cxx_include +=cxx_defines +=as_includes +=as_defines +=################################################################################.. Parse user options# Global options already parsed# These options extend the global options#ifdef OPTIONSifneq "$(findstring wall,$(OPTIONS))" "" # Enable all warningsUSE_WALL = 1endififneq "$(findstring list,$(OPTIONS))" "" # Create ListingsUSE_LIST = 1endifendif################################################################################# Extend LIBDIRS with toolset libraries# Create a ';' separated list# Start with a space separated list# May need to change if KEIL_LIBS is to be installed# in a path with spaces in it.LIB := $(patsubst %,%;,$(LIBDIRS) $(KEIL_LIBS) )export LIB################################################################################.. C Compiler definition#cc_filter := $(wildcard $(GBE_ROOT)/warnings.keil)ifdef cc_filtercc_redirect = 1cc_error_filter = $(awk) -f $(GBE_ROOT)/warnings.keilendif# Standard defines##..ifdef ALVLarm_defines += -DALVL=$(ALVL)endififdef DLVLarm_defines += -DDLVL=$(DLVL)endifarm_defines += -D__SOURCE__=\"$(notdir $<)\"# Standard flags#arm_flags += --device=$(USE_DEVICE)arm_flags += -c --apcs=interworkifdef FORCE_C_COMPILEarm_flags += --c90endififdef FORCE_CC_COMPILEarm_flags += --cppendififdef USE_THUMBarm_flags += --thumbendififdef USE_OPTIMISE # default for productionifdef OPT_MODEarm_flags += -O$(OPT_MODE)endifelsearm_flags += -O0endififdef USE_DEBUGINFO # default for debugarm_flags += -garm_defines += -DDEBUGelsearm_defines += -DNDEBUGendififdef USE_STRICT_ANSI # default NOarm_flags += --strictendififdef LEAVETMP # default NOarm_flags +=endififdef USE_LISTarm_flags += --listendififdef USE_WALLarm_flags +=elseifdef NOWARNLISTarm_flags += --diag_suppress $(subst $(comma),\$(comma),$(NOWARNLIST))endifendif# Standard includes##..arm_includes +=arm_includes += $(KEIL_INCLUDES) # From Toolset Defs################################################################################.. C Compiler definition#cc = $(CC_PRE) $(compiler)cc_init =cc_o_switch = -o $@cc_source = $<cc_flags = \$(patsubst %,%,$(CFLAGS)) \$(patsubst %,%,$(arm_flags)) \$(patsubst %,%,$(arm_defines)) \$(patsubst %,-D%,$(cc_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cc_includes)) \$(patsubst %,-I %,$(arm_includes))cc_term =define cc_pre@echo [$<] compiling..endefcc_post =################################################################################.. C++ Compiler definition#cxx = $(CC_PRE) $(compiler)cxx_init =cxx_o_switch = -o $@cxx_source = $<cxx_flags = \$(patsubst %,%,$(CXXFLAGS)) \$(patsubst %,%,$(arm_flags)) \$(patsubst %,%,$(arm_defines)) \$(patsubst %,-d%,$(cxx_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cxx_includes)) \$(patsubst %,-I %,$(arm_includes))define cxx_pre@echo [$<] compiling..endefdefine cxx_postendef################################################################################.. C/C++ dependencies#ccdep = $(XX_PRE) $(GBE_BIN)/mkdependccdep_init =ccdep_o_switch = -f -ccdep_flags = -MM -b -We -p '$$(OBJDIR)/' -o ".$(o)"ccdep_source = $(filter %.c %.cc %.cpp, $+) > $@ 2> $(OBJDIR)/depend.errccdep_flags += \$(patsubst %,%,$(CFLAGS)) \$(patsubst %,%,$(arm_depend)) \$(patsubst %,%,$(arm_defines)) \$(patsubst %,-D%,$(cc_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cc_includes)) \$(patsubst %,-Y %,$(arm_includes))ccdep_pre =ccdep_post =################################################################################.. Linker definition#ld = $(CC_PRE) $(linker)ld_init =ld_o_switch = -o $@ld_flags =ifeq ($(SHOWARGS),ALL)ld_flags += --show_cmdlineendifld_flags += --device=$(USE_DEVICE) --strict \$(patsubst %,%,$(LDFLAGS)) \$($(notdir $(basename $@))_ld) \--libpath=$(subst $(space),$(comma),$(KEIL_LIBS) ) \--diag_suppress L6373 \--summary_stderrld_pre = @echo [$@] Linking..;ld_post =################################################################################# Library dependency file generation# Use cmdfile to create a file that will be included in this makefile# The generated file will contain library path names that can only be# calculated on the fly#define LDDEPEND$(XX_PRE)$(cmdfile) -wkWeo$(@) "$($(DPLIST))"endef#################################################################################.. Archiver Definitions##.. Archiver#ar = $(XX_PRE) $(librarian)ar_init =ar_cmdfile = $(basename $@).arar_flags =ar_o_switch = --via $(ar_cmdfile)define ar_pre@$(echo) [\$@] Creating library archive.. ; \$(rm) -f $@ ;\$(cmdfile) -ko$(ar_cmdfile) \--create $@\\n\$(patsubst %,-r %\\n,$(filter %.o, $^))endefifndef LEAVETMPdefine ar_post@$(rm) -f $(ar_cmdfile)endefelsedefine ar_postendefendif#################################################################################.. Archive Merge# The archive tool can directly merge libaries#armerge = $(XX_PRE) $(librarian)armerge_init =armerge_flags = --create $@ -r $^armerge_o_switch =define armerge_pre@$(echo) [\$@] Creating a Merged library.. ; \$(rm) -f $@endefarmerge_post =################################################################################.. Assembler definition##as = $(XX_PRE) $(assembler)as_init =as_o_switch = -o $@as_source = $<asm_flags += --device $(USE_DEVICE)asm_flags += --apcs=interworkifdef USE_THUMBasm_flags += --thumbendifasm_flags += $(ASFLAGS)ifdef as_defines#asm_flags += $(addprefix -D,$(as_defines))endififdef USE_DEBUGINFO#asm_flags += -DDEBUGasm_flags += --debugelse#asm_flags += -DNDEBUGendifas_flags = $(asm_flags)ifdef as_includesas_flags += "-I$(subst $(space),;,$(strip $(as_includes)))"endifas_flags += $(patsubst %,-I%,$(INCDIRS))ifdef USE_LISTas_flags += --xref --list $(addsuffix .lst, $(basename $(@F)))endififdef USE_WALLas_flags +=elseifdef NOWARNLISTas_flags += --diag_suppress $(subst $(comma),\$(comma),$(NOWARNLIST))endifendifdefine as_pre@$(echo) [$<] Assembling file..endefdefine as_postendef################################################################################.. Elf Conversion##define FROMELF@echo [$@] Convert from ELF..;$(XX_PRE)$(fromelf) --bin --output $@ $<endef