Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
################################################################################ Module name : TOOLSET/arm251# Module type : Makefile system# Environment(s): arm251#####################################################################################################################################################.. 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 ARMLIB is to be installed# in a path with spaces in it.LIB := $(patsubst %,%;,$(LIBDIRS) $(ARMLIB) $(INGEDEV_LIBS) )export LIB################################################################################.. C Compiler definition#cc_filter := $(wildcard $(GBE_ROOT)/warnings.arm251)ifdef cc_filtercc_redirect = 1cc_error_filter = $(awk) -f $(GBE_ROOT)/warnings.arm251endif################################################################################# Compiler options## -zz-1 # Same as zz0 - sets the zero initialised variable(bss) threshold# # zz0 forces unitialisaed global to be placed in the ZI degment# -c # Compiler, but don't link# -apcs 3/noswst/nofp/interwork # proceedure call options# # 3 - is default ( use unknown)# # /noswst - no software stack checking# # /nofp - no frame pointers# # /interwork - arm/Thumb interworking# -littleend # Generate Little Endian (default)# -list # Create a listing file# -g # Enable generation of debug tables# -zc # Char type is signed# -zap1 # Pointers to Structs aligned to Min# -zat1 # Alignment of top level static objects (default = 1)# -zas1 # Min Byte alignment (default is 4)# -fa # Check for certain types of data flow anomalies# -o filename # Specifies output file# -Ospace # Optimise for Space (default)# -Otime # Optimise for time# -O2 # Full optimize## -DBSP_LITTLE_ENDIAN=1# -D__thumb=1# Standard defines##..arm_defines += -D__SOURCE__=\"$(notdir $<)\"# Standard flags#arm_flags += -c -apcs 3/noswst/nofp/interworkarm_flags += -zz-1 -zc -zap1 -zat1 -zas1 -fa -littleendarm_defines += -D__thumb=1arm_defines += -DBSP_LITTLE_ENDIAN=1ifdef USE_OPTIMISE # default for productionifdef OPT_MODEarm_flags += -O$(OPT_MODE)endifarm_flags += -O2elsearm_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 +=elseendif# Standard includes##..arm_includes +=arm_includes += $(ARM_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_cmdfile = $(subst /,\\,$(basename $@).ld)ld_flags =ld_file_flags =ld_o_switch = -output $@ -via $(ld_cmdfile)ld_term =define ld_pre$(AA_PRE)$(cmdfile) -wkWeo$(ld_cmdfile) \"$(ld_file_flags) $($(notdir $(basename $@))_ld)"; \echo [$@] Linking..;\$(call show_cmdfile,$(ld_cmdfile))endefifndef LEAVETMPdefine ld_post@$(rm) -f $(ld_cmdfile)endefelsedefine ld_postendefendif################################################################################# 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$(AA_PRE)$(cmdfile) -wkWeo$(@) "$($(DPLIST))"endef#################################################################################.. Archiver Definitions##.. Archiver#ar = $(XX_PRE) $(librarian)ar_init =ar_cmdfile = $(basename $@).arar_flags =ar_o_switch = -v $(ar_cmdfile)define ar_pre$(XX_PRE) $(echo) [\$@] Creating library archive.. ; \$(rm) -f $@ ;\$(cmdfile) -ko$(ar_cmdfile) \-c $@\\n\$(patsubst %,%\\n,$(filter %.o, $^));\$(call show_cmdfile,$(ar_cmdfile))endefifndef LEAVETMPdefine ar_post@$(rm) -f $(ar_cmdfile)endefelsedefine ar_postendefendif#################################################################################.. Archive Merge# The archive tool can directly merge libaries#armerge = $(XX_PRE) $(GBE_TOOLS)/armergearmerge_init =armerge_flags = -d $(MLIBDIR) -t unix -a $(librarian)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 += -16asm_flags += -apcs /interworkasm_flags += -fpu noneasm_flags += $(ASFLAGS)ifdef as_defines#asm_flags += $(addprefix -D,$(as_defines))endififdef USE_DEBUGINFO#asm_flags += -DDEBUGasm_flags += -gelse#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 += -list $(addsuffix .lst, $(basename $(@F)))endififdef USE_WALLas_flags +=elseas_flags += -nowarnendifdefine as_pre@$(echo) [$<] Assembling file..endefdefine as_postendef