sbsv2/raptor/lib/flm/tracecompiler.mk
branchfix
changeset 511 7581d432643a
parent 300 e87b08dc4b44
child 515 49a9c0e288ac
equal deleted inserted replaced
491:f60c4282816c 511:7581d432643a
    18 
    18 
    19 TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
    19 TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
    20 
    20 
    21 # Find out TRACE_PATH
    21 # Find out TRACE_PATH
    22 # first look for .*/traces/traces_<target_name>_<target_extension>
    22 # first look for .*/traces/traces_<target_name>_<target_extension>
    23 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces/traces_$(TARGET)_$(TARGETEXT),$(DIR))))
    23 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces/$(TARGET)_$(TARGETEXT),$(DIR))))
       
    24 
    24 
    25 
    25 ifneq ($(TRACE_PATH),)
    26 ifneq ($(TRACE_PATH),)
    26 # set project name as <target_name>_<target_extension> instead of <mmp_name>
    27 # set project name as <target_name>_<target_extension> instead of <mmp_name>
    27 TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
    28 TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
    28 endif
    29 endif
    29 
    30 
       
    31 
       
    32 # if not found look for .*/traces_<target_name>_<target_type>
       
    33 ifeq ($(TRACE_PATH),)
       
    34 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
       
    35 # set project name as <target_name>_<target_type> instead of <mmp_name>
       
    36 ifneq ($(TRACE_PATH),)
       
    37 TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
       
    38 endif
       
    39 endif
       
    40 
    30 # if not found look for .*/traces_<mmp_name>
    41 # if not found look for .*/traces_<mmp_name>
    31 ifeq ($(TRACE_PATH),)
    42 ifeq ($(TRACE_PATH),)
    32 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TRACE_PRJNAME),$(DIR))))
    43 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TRACE_PRJNAME),$(DIR))))
    33 endif
    44 endif
    34 
    45 
    35 # if not found look for .*/traces
    46 # if not found look for .*/traces
    36 ifeq ($(TRACE_PATH),)
    47 ifeq ($(TRACE_PATH),)
    37 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces,$(DIR))))
    48 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces,$(DIR))))
    38 endif
    49 endif
    39 
    50 
    40 # if not found look for .*/traces_<target_name>_<target_type>
    51 # if not found look for .*/traces_<target_name>_<target_type>
    41 ifeq ($(TRACE_PATH),)
    52 ifeq ($(TRACE_PATH),)
    42 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
    53 TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
    43 # set project name as <target_name>_<target_type> instead of <mmp_name>
    54 # set project name as <target_name>_<target_type> instead of <mmp_name>
    44 TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
    55 TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
    45 endif
    56 endif
    46 
    57 
    47 # initialise (so what output will be correct if we don't actually run the TC)
    58 # initialise (so what output will be correct if we don't actually run the TC)
    74 
    85 
    75 # The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
    86 # The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
    76 # fred.prd.mmp we want fred_prd
    87 # fred.prd.mmp we want fred_prd
    77 TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
    88 TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
    78 
    89 
    79 TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
       
    80 AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/SymbianTraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
       
    81 
    90 
    82 JAVA_COMMAND:=$(SBS_JAVATC)
    91 JAVA_COMMAND:=$(SBS_JAVATC)
    83 TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools
    92 TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools
       
    93 
       
    94 #
       
    95 #try to find TraceCompilerMain.class (the new posix-like interface)
       
    96 #
       
    97 ifeq ($(trace_compile),)
       
    98 TCClass:=$(wildcard  $(TRACE_COMPILER_PATH)/tracecompiler/com/nokia/tracecompiler/TraceCompilerMain.class)
       
    99 
       
   100 ifneq ($(TCClass),) #New Interface
       
   101 TCAUTOGENDIR:=platform
       
   102 TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompilerMain
       
   103 define trace_compile
       
   104 $(TRACE_MARKER) : $(PROJECT_META)
       
   105 	$(call startrule,tracecompile) \
       
   106 	( $(GNUCAT) $(TRACE_SOURCE_LIST); \
       
   107 	  echo -en "*ENDOFSOURCEFILES*\n" ) | \
       
   108 	$(JAVA_COMMAND) $(TRACE_COMPILER_START) -d --uid=$(UID_TC) --project=$(TRACE_PRJNAME) --mmp=$(PROJECT_META) --traces=$(TRACE_PATH) &&  \
       
   109 	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
       
   110 	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
       
   111 	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
       
   112 	$(call endrule,tracecompile)
       
   113 endef
       
   114 else # Old inteface
       
   115 TCAUTOGENDIR:=internal
    84 TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
   116 TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
    85 
       
    86 
       
    87 # 1. Use pipe to send inputs to trace compiler to process
   117 # 1. Use pipe to send inputs to trace compiler to process
    88 # 2. Create a hash regarding to source names and put it in marker.
   118 # 2. Create a hash regarding to source names and put it in marker.
    89 # 3. Show source names that are processed by trace compiler
   119 # 3. Show source names that are processed by trace compiler
    90 define trace_compile
   120 define trace_compile
    91 $(TRACE_MARKER) : $(PROJECT_META)
   121 $(TRACE_MARKER) : $(PROJECT_META)
    97 	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
   127 	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
    98 	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
   128 	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
    99 	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
   129 	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
   100 	$(call endrule,tracecompile)
   130 	$(call endrule,tracecompile)
   101 endef
   131 endef
       
   132 endif
       
   133 
       
   134 endif
       
   135 
       
   136 TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
       
   137 AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/$(TCAUTOGENDIR)/symbiantraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
   102 
   138 
   103 $(eval $(trace_compile))
   139 $(eval $(trace_compile))
   104 
   140 
   105 $(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
   141 $(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
   106 
   142 
       
   143 $(call makepath,$(TRACE_PATH) $(dir $(TRACE_DICTIONARY) $(AUTOGEN_HEADER)))
   107 # End sanity guard
   144 # End sanity guard
   108 endif
   145 endif
   109 
   146 
   110 $(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,))
   147 $(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,))
   111 
   148