sbsv2/raptor/lib/flm/tracecompiler.mk
author timothy.murphy@nokia.com
Sat, 01 May 2010 00:09:59 +0100
branchfix
changeset 516 cd8318d5fb3a
parent 515 49a9c0e288ac
child 517 b97b96f395b6
permissions -rw-r--r--
Somewhat more sane choice of directory. Fix problem where winscw migh have had wrong TARGETEXT var.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
     1
# Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     2
# All rights reserved.
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     3
# This component and the accompanying materials are made available
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     4
# under the terms of the License "Eclipse Public License v1.0"
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     5
# which accompanies this distribution, and is available
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     7
# 
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     8
# Initial Contributors:
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
     9
# Nokia Corporation - initial contribution.
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    10
#
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    11
# Contributors:
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    12
#
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    13
# Description:
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    14
# Run Trace Compiler on source files to generate trace headers and decode files
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    15
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    16
# Expected inputs:
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    17
# TARGETEXT
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    18
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    19
# Set project name as <mmp_name>
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    20
TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META)))
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    21
OLDTC_TRACE_PRJNAME:=$(TRACE_PRJNAME)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    22
TRACE_RELEASABLE_ID:=$(TARGET)_$(TARGETEXT)
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    23
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    24
define get_trace_path
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    25
$(firstword $(filter %$1, $(USERINCLUDE) $(SYSTEMINCLUDE)))
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    26
endef
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    27
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    28
$(if $(FLMDEBUG),$(info <debug>INCLUDES=$(USERINCLUDE) $(SYSTEMINCLUDE)</debug>))
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    29
$(if $(FLMDEBUG),$(info <debug>TARGET=$(TARGET) TARGETEXT=$(TARGETEXT)</debug>))
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    30
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    31
# Find out TRACE_PATH  by looking for the trace folser in SYSTEMINCLUDE and USERINCLUDES
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    32
# traces/traces_<target_name>_<target_extension>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    33
TRACE_PATH:=$(call get_trace_path,/traces/traces_$(TARGET)_$(TARGETEXT))
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    34
ifneq ($(TRACE_PATH),)
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    35
  TRACE_PRJNAME:=$(TRACE_RELEASABLE_ID)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    36
else # obsolete forms for compatibility
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    37
  # traces_<target_name>_<target_ext>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    38
  TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETEXT))
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    39
  ifneq ($(TRACE_PATH),)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    40
    # set project name as <target_name>_<target_ext> instead of <mmp_name>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    41
    # to trick old TCom into finding the path.
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    42
    OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    43
  else
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    44
    # traces_<target_name>_<target_type>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    45
    TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETTYPE))
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    46
    ifneq ($(TRACE_PATH),)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    47
      # set project name as <target_name>_<target_type> instead of <mmp_name>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    48
      # to trick old TCom into finding the path.
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    49
      OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    50
    else
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    51
      # traces_<mmp_name>
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    52
      TRACE_PATH:=$(call get_trace_path,/traces_$(TRACE_PRJNAME))
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    53
   
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    54
      # traces
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    55
      ifeq ($(TRACE_PATH),)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    56
       TRACE_PATH:=$(call get_trace_path,/traces)
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    57
      endif
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    58
    endif
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    59
  endif
277
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    60
endif
dbd582b8c0ab SF Bug 1562 - [Raptor] Tracecompiler SYSTEMINCLUDE should be based on TARGETEXT not TARGETTYPE
timothy.murphy@nokia.com
parents: 236
diff changeset
    61
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
    62
236
a2dc04c8e649 fix: Don't print what information if we have no intention of running the trace compiler.
timothy.murphy@nokia.com
parents: 173
diff changeset
    63
# initialise (so what output will be correct if we don't actually run the TC)
a2dc04c8e649 fix: Don't print what information if we have no intention of running the trace compiler.
timothy.murphy@nokia.com
parents: 173
diff changeset
    64
TRACE_DICTIONARY:=
a2dc04c8e649 fix: Don't print what information if we have no intention of running the trace compiler.
timothy.murphy@nokia.com
parents: 173
diff changeset
    65
AUTOGEN_HEADER:=
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    66
$(if $(FLMDEBUG),$(info <debug>TRACE_PATH='$(TRACE_PATH)'   TRACE_RELEASABLE_ID='$(TRACE_RELEASABLE_ID)'</debug>))
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    67
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    68
# Run trace compiler only if TRACE_PATH exists
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    69
ifneq ($(TRACE_PATH),)
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    70
TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).done
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    71
TRACE_HEADERS:=
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    72
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    73
TRACE_SOURCE_LIST:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    74
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    75
# 1. Append to or create the list of source files for trace compiler to process
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    76
# 2. Check if the hash in trace marker remain unchanged. If not, remove marker so trace compiler will run again. 
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    77
X:=$(shell set -x ; $(GNUMKDIR) -p $(TRACE_MARKER_PATH) ; $(GNUTOUCH) $(TRACE_SOURCE_LIST) ; echo -e "$(subst $(CHAR_SPACE),\\n,$(SOURCE))" | $(GNUSORT) -u $(TRACE_SOURCE_LIST) - > $(TRACE_SOURCE_LIST).tmp && $(GNUMV) $(TRACE_SOURCE_LIST).tmp $(TRACE_SOURCE_LIST) ; $(GNUMD5SUM) -c $(TRACE_MARKER) || $(GNURM) $(TRACE_MARKER))
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    78
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    79
$(if $(FLMDEBUG),$(info <debug>Trace Compiler sourcelist generation output: $(X)</debug>))
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    80
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    81
$(TRACE_MARKER) : $(SOURCE)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    82
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    83
TRACE_HEADERS:=$(foreach SRC,$(SOURCE),$(TRACE_PATH)/$(basename $(notdir $(SRC)))Traces.h)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    84
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    85
$(TRACE_HEADERS): $(TRACE_MARKER)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    86
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    87
ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    88
GUARD_$(call sanitise,$(TRACE_MARKER)):=1
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    89
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    90
$(if $(FLMDEBUG),$(info <debug>PAST MARKER='$(TRACE_RELEASABLE_ID)'</debug>))
300
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
    91
# The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
    92
# fred.prd.mmp we want fred_prd
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
    93
TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
    94
OLDTC_TRACE_PRJNAME_SANITISED:=$(subst .,_,$(OLDTC_TRACE_PRJNAME))
300
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
    95
236
a2dc04c8e649 fix: Don't print what information if we have no intention of running the trace compiler.
timothy.murphy@nokia.com
parents: 173
diff changeset
    96
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    97
JAVA_COMMAND:=$(SBS_JAVATC)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
    98
TRACE_COMPILER_PATH:=$(EPOCROOT)/epoc32/tools
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
    99
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   100
#
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   101
#try to find TraceCompilerMain.class (the new posix-like interface)
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   102
#
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   103
ifeq ($(trace_compile),)
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   104
TCClass:=$(wildcard  $(TRACE_COMPILER_PATH)/tracecompiler/com/nokia/tracecompiler/TraceCompilerMain.class)
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   105
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   106
ifneq ($(TCClass),) #New Interface
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   107
TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompilerMain
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   108
define trace_compile
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   109
$(TRACE_MARKER) : $(PROJECT_META)
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   110
	$(call startrule,tracecompile) \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   111
	( $(GNUCAT) $(TRACE_SOURCE_LIST); \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   112
	  echo -en "*ENDOFSOURCEFILES*\n" ) | \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   113
	$(JAVA_COMMAND) $(TRACE_COMPILER_START) -d --uid=$(UID_TC) --project=$(TRACE_PRJNAME) --mmp=$(PROJECT_META) --traces=$(TRACE_PATH) &&  \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   114
	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   115
	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   116
	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   117
	$(call endrule,tracecompile)
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   118
endef
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   119
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   120
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   121
TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   122
AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   123
else # Old inteface
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   124
TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   125
# 1. Use pipe to send inputs to trace compiler to process
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   126
# 2. Create a hash regarding to source names and put it in marker.
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   127
# 3. Show source names that are processed by trace compiler
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   128
define trace_compile
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   129
$(TRACE_MARKER) : $(PROJECT_META)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   130
	$(call startrule,tracecompile) \
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   131
	( echo -en "$(OLDTC_TRACE_PRJNAME)\n$(PROJECT_META)\n"; \
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   132
	  $(GNUCAT) $(TRACE_SOURCE_LIST); \
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   133
	  echo -en "*ENDOFSOURCEFILES*\n" ) | \
293
5bbbb5fd2a8a fix: remove OSTv2 dependency so we will still work with the old one
timothy.murphy@nokia.com
parents: 291
diff changeset
   134
	$(JAVA_COMMAND) $(TRACE_COMPILER_START) $(UID_TC) &&  \
89
315b0aa777bd Make TC fail when there is an error. This is hypothetical in this version but the next version of the TC is in testing.
timothy.murphy@nokia.com
parents: 3
diff changeset
   135
	$(GNUMD5SUM) $(TRACE_SOURCE_LIST) > $(TRACE_MARKER) && \
300
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
   136
	{ $(GNUTOUCH) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER); \
e87b08dc4b44 SF Bug 2125 - [Raptor] - tracecompiler what output incorrect if mmp basename contains '.' e.g. fred.prd.mmp
timothy.murphy@nokia.com
parents: 293
diff changeset
   137
	 $(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   138
	$(call endrule,tracecompile)
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   139
endef
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   140
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   141
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   142
TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(OLDTC_TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   143
AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/$(OLDTC_TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   144
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   145
# End - new/old trace compiler
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   146
endif
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   147
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   148
# End - tracecompile is defined
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   149
endif
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   150
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   151
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   152
$(eval $(trace_compile))
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   153
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   154
$(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   155
511
7581d432643a fix: support new trace compiler features for preventing clashes. Automatically turn on OST_TRACE_COMPILER_IN_USE macro. Look for trace header in systemincludes. Make directories in makefile parse to prevent clashes during build. Correct path for autogen headers. Correct case issue with autogen headers on Linux.
timothy.murphy@nokia.com
parents: 300
diff changeset
   156
$(call makepath,$(TRACE_PATH) $(dir $(TRACE_DICTIONARY) $(AUTOGEN_HEADER)))
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   157
# End  - guard that prevents repeated calls to TCom
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   158
endif
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   159
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   160
$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,))
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   161
516
cd8318d5fb3a Somewhat more sane choice of directory.
timothy.murphy@nokia.com
parents: 515
diff changeset
   162
# End - Nothing to trace (not trace path in include)
3
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   163
else
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   164
# Indicate to following parts of the FLM that we actually won't run
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   165
# trace compiler so they can set dependencies accordingly.
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   166
USE_TRACE_COMPILER:=
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   167
endif
e1eecf4d390d Team sf branch.
tnmurphy@4GBL06592.nokia.com
parents: 0
diff changeset
   168