Rev 335 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
################################################################################ File: TOOLSET/VERIX.RUL[e]# Contents: VERIX rules################################################################################################################################################################.. Remove "undef" warnings#cc_includes +=cc_includes +=cc_defines +=cxx_includes +=cxx_defines +=VRX_SYSLIBS +=################################################################################.. Toolset defaults#################################################################################.. 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 #OPTIONS################################################################################# Extend LIBDIRS with toolset libraries# Create a ';' separated list# Start with a space separated list# May need to change if VERIX_LIB is to be installed# a path with spaces in it.LIB := $(patsubst %,%;,$(LIBDIRS) $(VERIX_LIB) )export LIB################################################################################.. C Compiler definition## Compile and link options# -g : generate debug info# -v : display arm tool commands as they are invoked# -armcc,"-E" : generate pre-processor output only# -armcc,"--list" : generate pre-processor output as well as compile# -armcc,"-Ospace" : perform unaligned data accesses via functions# -armcc,"-Otime" : perform unaligned data accesses inline# -armcc,"-W+s" : report any padding added to structures# -armcc,"--diag_suppress nnn,nnn" : suppress warnings# Standard defines##..ifdef ALVLvrx_defines += -DALVL=$(ALVL)endififdef DLVLvrx_defines += -DDLVL=$(DLVL)endifvrx_defines += -D__SOURCE__=\"$(notdir $<)\"# Standard flags#vrx_flags += -cifdef FORCE_C_COMPILEendififdef FORCE_CC_COMPILEendififdef USE_OPTIMISE # default for productionifdef OPT_MODEvrx_flags += -armcc,"-O$(OPT_MODE)"endifelseendififdef USE_DEBUGINFO # default for debugvrx_flags += -gvrx_defines += -DDEBUGelsevrx_defines += -DNDEBUGendififdef USE_STRICT_ANSI # default NOvrx_flags +=endififdef LEAVETMP # default NOvrx_flags +=endififdef USE_LISTvrx_flags += -armcc,"--list"endififdef USE_WALLvrx_flags += -armcc,"-W+s"elseifdef NOWARNLISTvrx_flags += -armcc,"--diag_suppress $(subst $(comma),\$(comma),$(NOWARNLIST))"endifendif# Standard includes##..ifdef VRX_INCPATH # From CompileOptionsvrx_includes += $(VRX_INCPATH)endifvrx_includes +=ifdef VERIX_INCLUDEvrx_includes += $(VERIX_INCLUDE) # From Toolset Defsendif################################################################################.. C Compiler definition#cc = $(CC_PRE) $(VERIX_compiler)cc_init =cc_o_switch = -o $@cc_source = $<cc_flags = \$(patsubst %,%,$(CFLAGS)) \$(patsubst %,%,$(vrx_flags)) \$(patsubst %,%,$(vrx_defines)) \$(patsubst %,-D%,$(cc_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cc_includes)) \$(patsubst %,-I %,$(vrx_includes))cc_term =define cc_pre@echo [$<] compiling..endefifdef USE_LISTdefine cc_post$(mv) $(basename $(@F)).lst $(basename $@).lstendefelsedefine cc_postendefendif################################################################################.. C++ Compiler definition#cxx = $(CC_PRE) $(VERIX_compiler)cxx_init =cxx_o_switch = -o $@cxx_source = $<cxx_flags = \$(patsubst %,%,$(CXXFLAGS)) \$(patsubst %,%,$(vrx_flags)) \$(patsubst %,%,$(vrx_defines)) \$(patsubst %,-d%,$(cxx_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cxx_includes)) \$(patsubst %,-I %,$(vrx_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 %,%,$(vrx_depend)) \$(patsubst %,%,$(vrx_defines)) \$(patsubst %,-D%,$(cc_defines)) \$(patsubst %,-I %,$(INCDIRS)) \$(patsubst %,-I %,$(cc_includes)) \$(patsubst %,-Y %,$(vrx_includes))ccdep_pre =ccdep_post =################################################################################.. Linker definition#ld = $(CC_PRE) $(VERIX_compiler)ld_init =ld_o_switch = -o $@ld_depfile = $(subst /,\\,$(basename $@).dep)ld_flags = -map -symbols \$(patsubst %,%,$(LDFLAGS)) \$($(notdir $(basename $@))_ld) \$(VRX_SYSLIBS)ld_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$(ld_depfile) \"$($(notdir $(basename $@))_dp)";endef#################################################################################.. Archiver Definitions##.. Archiver#ar = $(XX_PRE) $(ARM_ar)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) $(ARM_ar)armerge_init =armerge_flags = -create $@ -r $^armerge_o_switch =define armerge_pre@$(echo) [\$@] Creating a Merged library.. ; \$(rm) -f $@endefarmerge_post =################################################################################# HEADER## A function to modify the executable header# Arguments# $1 Command line arguments# $2 Comment## Assumes that $@ is the input/output filedefine HEADER@$(echo) [$@] $(2)..$(CC_PRE) $(VERIX_hdr) $1 $@ || ( $(rm) -f $@; exit 1 )endef################################################################################# FILESIGNATURE## A function to sign a file# Arguments# $1 - Input file name# $2 - Output file name for Certificate# $3 - Options (-L for Flash )## Note: The FileSignature program needs# - '\' when being called# - '\' for its input file# - Absolute pathname for its input file##define FILESIGNATURE@echo [$<] Signing Files ..;$(CC_PRE) $(subst /,\\,$(VERIX_FileSignature)) -C $2 -F $(subst /,\\,$(abspath $1)) $3endef#