sbsv2/raptor/lib/flm/tracecompiler.mk
changeset 28 b8fa7dfeeaa1
parent 18 de5b887c98f7
equal deleted inserted replaced
27:3a31ca4b29c4 28:b8fa7dfeeaa1
    14 # Run Trace Compiler on source files to generate trace headers and decode files
    14 # Run Trace Compiler on source files to generate trace headers and decode files
    15 
    15 
    16 # Expected inputs:
    16 # Expected inputs:
    17 # TARGETEXT
    17 # TARGETEXT
    18 
    18 
       
    19 # Set macro for TRACES keyword
       
    20 ifneq ($(TRACES),)
       
    21 CDEFS:=$(CDEFS) OST_TRACE_COMPILER_IN_USE
       
    22 $(if $(FLMDEBUG),$(info <debug>CDEFS=$(CDEFS)</debug>))
       
    23 endif
       
    24 
    19 # Set project name as <mmp_name>
    25 # Set project name as <mmp_name>
    20 TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META)))
    26 TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META)))
    21 OLDTC_TRACE_PRJNAME:=$(TRACE_PRJNAME)
    27 OLDTC_TRACE_PRJNAME:=$(TRACE_PRJNAME)
    22 TRACE_RELEASABLE_ID:=$(TARGET)_$(TARGETEXT)
    28 TRACE_RELEASABLE_ID:=$(TARGET)_$(TARGETEXT)
    23 
    29 
    26 endef
    32 endef
    27 
    33 
    28 $(if $(FLMDEBUG),$(info <debug>INCLUDES=$(USERINCLUDE) $(SYSTEMINCLUDE)</debug>))
    34 $(if $(FLMDEBUG),$(info <debug>INCLUDES=$(USERINCLUDE) $(SYSTEMINCLUDE)</debug>))
    29 $(if $(FLMDEBUG),$(info <debug>TARGET=$(TARGET) TARGETEXT=$(TARGETEXT)</debug>))
    35 $(if $(FLMDEBUG),$(info <debug>TARGET=$(TARGET) TARGETEXT=$(TARGETEXT)</debug>))
    30 
    36 
    31 # Find out TRACE_PATH  by looking for the trace folder in SYSTEMINCLUDE and USERINCLUDES
    37 # Find out TRACE_PATH by looking for the trace folder in SYSTEMINCLUDE and USERINCLUDES
    32 # traces/traces_<target_name>_<target_extension>
    38 # traces/<target_name>_<target_extension>
    33 TRACE_PATH:=$(call get_trace_path,/traces/traces_$(TRACE_RELEASABLE_ID))
    39 TRACE_PATH:=$(call get_trace_path,/traces/$(TRACE_RELEASABLE_ID))
    34 ifneq ($(TRACE_PATH),)
    40 ifneq ($(TRACE_PATH),)
    35   TRACE_PRJNAME:=$(TRACE_RELEASABLE_ID)
    41   TRACE_PRJNAME:=$(TRACE_RELEASABLE_ID)
    36 else # obsolete forms for compatibility
    42 else # obsolete forms for compatibility
    37   # traces_<target_name>_<target_ext>
    43   # traces_<target_name>_<target_ext>
    38   TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETEXT))
    44   TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETEXT))
    61 
    67 
    62 
    68 
    63 # initialise (so what output will be correct if we don't actually run the TC)
    69 # initialise (so what output will be correct if we don't actually run the TC)
    64 TRACE_DICTIONARY:=
    70 TRACE_DICTIONARY:=
    65 AUTOGEN_HEADER:=
    71 AUTOGEN_HEADER:=
    66 $(if $(FLMDEBUG),$(info <debug>TRACE_PATH='$(TRACE_PATH)'   TRACE_RELEASABLE_ID='$(TRACE_RELEASABLE_ID)'</debug>))
    72 $(if $(FLMDEBUG),$(info <debug>TRACE_PATH='$(TRACE_PATH)' TRACE_RELEASABLE_ID='$(TRACE_RELEASABLE_ID)'</debug>))
    67 
    73 
    68 # Run trace compiler only if TRACE_PATH exists
    74 # Run trace compiler only if TRACE_PATH exists
    69 ifneq ($(TRACE_PATH),)
    75 ifneq ($(TRACE_PATH),)
    70 TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).done
    76 TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).done
       
    77 TRACE_THISCOMPONENT_ALLRULE:=$(call sanitise,$(COMPONENT_META))_alltracedone
    71 TRACE_HEADERS:=
    78 TRACE_HEADERS:=
    72 
    79 
    73 TRACE_SOURCE_LIST:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
    80 TRACE_SOURCE_LIST:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
       
    81 $(if $(FLMDEBUG),$(info <debug>TRACE_SOURCE_LIST=$(TRACE_SOURCE_LIST)</debug>))
    74 TRACE_VARIANT_SOURCE_LIST:=$(OUTPUTPATH)/$(VARIANTPLATFORM)/$(VARIANTTYPE)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
    82 TRACE_VARIANT_SOURCE_LIST:=$(OUTPUTPATH)/$(VARIANTPLATFORM)/$(VARIANTTYPE)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
       
    83 $(if $(FLMDEBUG),$(info <debug>TRACE_VARIANT_SOURCE_LIST=$(TRACE_VARIANT_SOURCE_LIST)</debug>))
    75 
    84 
    76 # The sourcelist_grouped_write macro allows us to construct a source list file, 10 objects at a time
    85 # The sourcelist_grouped_write macro allows us to construct a source list file, 10 objects at a time
    77 # to avoid limits on argument lengths and sizes on Windows.
    86 # to avoid limits on argument lengths and sizes on Windows.
    78 # $1 = list of source files
    87 # $1 = list of source files
    79 # $2 = ">" or ">>" i.e. for creating the file.
    88 # $2 = ">" or ">>" i.e. for creating the file.
   106 $(eval $(call GenerateStandardCleanTarget,$(TRACE_VARIANT_SOURCE_LIST),,))
   115 $(eval $(call GenerateStandardCleanTarget,$(TRACE_VARIANT_SOURCE_LIST),,))
   107 
   116 
   108 
   117 
   109 $(if $(FLMDEBUG),$(info <debug>Trace Compiler SOURCES: $(SOURCE)</debug>))
   118 $(if $(FLMDEBUG),$(info <debug>Trace Compiler SOURCES: $(SOURCE)</debug>))
   110 
   119 
       
   120 
       
   121 .PHONY:: $(TRACE_THISCOMPONENT_ALLRULE)
       
   122 
       
   123 $(TRACE_THISCOMPONENT_ALLRULE):: $(TRACE_MARKER)
       
   124 
   111 $(TRACE_MARKER) : $(SOURCE)
   125 $(TRACE_MARKER) : $(SOURCE)
   112 
   126 
   113 TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h)
   127 TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h)
   114 
   128 
   115 $(TRACE_HEADERS): $(TRACE_MARKER)
   129 $(TRACE_HEADERS): $(TRACE_MARKER)
   116 
   130 
   117 ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),)
   131 TRACE_GUARD:=GUARD_$(call sanitise,$(TRACE_MARKER))
   118 GUARD_$(call sanitise,$(TRACE_MARKER)):=1
   132 $(if $(FLMDEBUG),$(info <debug>TRACE GUARD for '$(TRACE_RELEASABLE_ID)' is:  $(TRACE_GUARD)=$($(TRACE_GUARD))</debug>))
   119 
   133 
   120 $(if $(FLMDEBUG),$(info <debug>PAST MARKER='$(TRACE_RELEASABLE_ID)'</debug>))
   134 ifeq ($($(TRACE_GUARD)),)
       
   135 $(TRACE_GUARD):=1
       
   136 
       
   137 $(if $(FLMDEBUG),$(info <debug>PAST GUARD (unique trace) for '$(TRACE_RELEASABLE_ID)'</debug>))
   121 # The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
   138 # The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
   122 # fred.prd.mmp we want fred_prd
   139 # fred.prd.mmp we want fred_prd
   123 TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
   140 TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
   124 OLDTC_TRACE_PRJNAME_SANITISED:=$(subst .,_,$(OLDTC_TRACE_PRJNAME))
   141 OLDTC_TRACE_PRJNAME_SANITISED:=$(subst .,_,$(OLDTC_TRACE_PRJNAME))
   125 
   142