Somewhat more sane choice of directory.
Fix problem where winscw migh have had wrong TARGETEXT var.
--- a/sbsv2/raptor/lib/flm/e32abiv2.flm Fri Apr 30 17:18:03 2010 +0100
+++ b/sbsv2/raptor/lib/flm/e32abiv2.flm Sat May 01 00:09:59 2010 +0100
@@ -53,6 +53,8 @@
# Strip switch-type parameters
#
POSTLINKTARGETTYPE:=$(strip $(POSTLINKTARGETTYPE))
+TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
+
UID1:=$(strip $(UID1))
UID2:=$(strip $(UID2))
UID3:=$(strip $(UID3))
@@ -128,9 +130,9 @@
# Postlinkable targets need to be linked and elf2e32'd
ifneq ($(DOPOSTLINK),)
- E32TARGET:=$(RELEASABLEPATH)/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
- LINK_TARGET:=$(RELEASABLEPATH)/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE)).sym
- MAPFILE:=$(RELEASABLEPATH)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE)).map
+ E32TARGET:=$(RELEASABLEPATH)/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(TARGETEXT)
+ LINK_TARGET:=$(RELEASABLEPATH)/$(TARGET)$(if $(EXPLICITVERSION),{$(VERSIONHEX)},).$(TARGETEXT).sym
+ MAPFILE:=$(RELEASABLEPATH)/$(TARGET).$(TARGETEXT).map
else
E32TARGET:=
LINK_TARGET:=
@@ -187,7 +189,7 @@
# put the hex version number in the right place
ifeq ($(LINKAS),)
LINKASNAME=$(TARGET)
- LINKASTYPE=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
+ LINKASTYPE=$(TARGETEXT)
else
SPLIT_LINKAS=$(subst ., ,$(LINKAS))
LINKASNAME=$(word 1,$(SPLIT_LINKAS))
@@ -712,6 +714,7 @@
# USE_TRACE_COMPILER defaults to blank in Raptor config.
# Users can turn TC on by setting it to 1 in user config.
ifneq ($(USE_TRACE_COMPILER),)
+ # TARGETEXT is already set
include $(FLMHOME)/tracecompiler.mk
WHATRELEASE:=$(WHATRELEASE) $(TRACE_DICTIONARY) $(AUTOGEN_HEADER)
ifneq ($(TRACE_PATH),)
@@ -867,7 +870,7 @@
define e32abiv2_listing
# $1 is the sourcefile
-$(eval LISTINGTARGET:=$(strip $(call extractandmap,$(CPPFILEEXTENSIONS) $(CFILEEXTENSIONS),.$(subst _,.,$(call sanitise,$(FULLVARIANTPATH))).$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE)).lst,$1)))
+$(eval LISTINGTARGET:=$(strip $(call extractandmap,$(CPPFILEEXTENSIONS) $(CFILEEXTENSIONS),.$(subst _,.,$(call sanitise,$(FULLVARIANTPATH))).$(TARGET).$(TARGETEXT).lst,$1)))
$(eval DEPENDFILENAME:=$(call map2listfile,$1).d)
$(eval DEPENDFILE:=$(wildcard $(DEPENDFILENAME)))
@@ -923,7 +926,7 @@
# separate arguments are interpreted as a single argument when passed to bash
FIVESPACES=$(BLANK) $(BLANK)
-FREEZEGUARD:=TARGET_$(TARGET)_$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))_$(IMPORTLIBPATH)_EFREEZE
+FREEZEGUARD:=TARGET_$(TARGET)_$(TARGETEXT)_$(IMPORTLIBPATH)_EFREEZE
define e32freeze
--- a/sbsv2/raptor/lib/flm/tracecompiler.mk Fri Apr 30 17:18:03 2010 +0100
+++ b/sbsv2/raptor/lib/flm/tracecompiler.mk Sat May 01 00:09:59 2010 +0100
@@ -13,61 +13,64 @@
# Description:
# Run Trace Compiler on source files to generate trace headers and decode files
+# Expected inputs:
+# TARGETEXT
+
# Set project name as <mmp_name>
TRACE_PRJNAME:=$(basename $(notdir $(PROJECT_META)))
+OLDTC_TRACE_PRJNAME:=$(TRACE_PRJNAME)
+TRACE_RELEASABLE_ID:=$(TARGET)_$(TARGETEXT)
-TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(POSTLINKFILETYPE))
+define get_trace_path
+$(firstword $(filter %$1, $(USERINCLUDE) $(SYSTEMINCLUDE)))
+endef
+
+$(if $(FLMDEBUG),$(info <debug>INCLUDES=$(USERINCLUDE) $(SYSTEMINCLUDE)</debug>))
+$(if $(FLMDEBUG),$(info <debug>TARGET=$(TARGET) TARGETEXT=$(TARGETEXT)</debug>))
-# Find out TRACE_PATH
-# first look for .*/traces/traces_<target_name>_<target_extension>
-TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces/$(TARGET)_$(TARGETEXT),$(DIR))))
-
-
+# Find out TRACE_PATH by looking for the trace folser in SYSTEMINCLUDE and USERINCLUDES
+# traces/traces_<target_name>_<target_extension>
+TRACE_PATH:=$(call get_trace_path,/traces/traces_$(TARGET)_$(TARGETEXT))
ifneq ($(TRACE_PATH),)
-# set project name as <target_name>_<target_extension> instead of <mmp_name>
-TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
+ TRACE_PRJNAME:=$(TRACE_RELEASABLE_ID)
+else # obsolete forms for compatibility
+ # traces_<target_name>_<target_ext>
+ TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETEXT))
+ ifneq ($(TRACE_PATH),)
+ # set project name as <target_name>_<target_ext> instead of <mmp_name>
+ # to trick old TCom into finding the path.
+ OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT)
+ else
+ # traces_<target_name>_<target_type>
+ TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETTYPE))
+ ifneq ($(TRACE_PATH),)
+ # set project name as <target_name>_<target_type> instead of <mmp_name>
+ # to trick old TCom into finding the path.
+ OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
+ else
+ # traces_<mmp_name>
+ TRACE_PATH:=$(call get_trace_path,/traces_$(TRACE_PRJNAME))
+
+ # traces
+ ifeq ($(TRACE_PATH),)
+ TRACE_PATH:=$(call get_trace_path,/traces)
+ endif
+ endif
+ endif
endif
-# if not found look for .*/traces_<target_name>_<target_type>
-ifeq ($(TRACE_PATH),)
-TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
-# set project name as <target_name>_<target_type> instead of <mmp_name>
-ifneq ($(TRACE_PATH),)
-TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
-endif
-endif
-
-# if not found look for .*/traces_<mmp_name>
-ifeq ($(TRACE_PATH),)
-TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TRACE_PRJNAME),$(DIR))))
-endif
-
-# if not found look for .*/traces
-ifeq ($(TRACE_PATH),)
-TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces,$(DIR))))
-endif
-
-# if not found look for .*/traces_<target_name>_<target_type>
-ifeq ($(TRACE_PATH),)
-TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR))))
-# set project name as <target_name>_<target_type> instead of <mmp_name>
-# to trick old TCom into finding the path.
-TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE)
-endif
-
# initialise (so what output will be correct if we don't actually run the TC)
TRACE_DICTIONARY:=
AUTOGEN_HEADER:=
-
-$(if $(FLMDEBUG),$(info <debug>TRACE_PATH = $(TRACE_PATH)</debug>))
+$(if $(FLMDEBUG),$(info <debug>TRACE_PATH='$(TRACE_PATH)' TRACE_RELEASABLE_ID='$(TRACE_RELEASABLE_ID)'</debug>))
# Run trace compiler only if TRACE_PATH exists
ifneq ($(TRACE_PATH),)
-TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_PRJNAME)_$(UID_TC).done
+TRACE_MARKER:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).done
TRACE_HEADERS:=
-TRACE_SOURCE_LIST:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_PRJNAME)_$(UID_TC).sourcelist
+TRACE_SOURCE_LIST:=$(TRACE_MARKER_PATH)/tracecompile_$(TRACE_RELEASABLE_ID)_$(UID_TC).sourcelist
# 1. Append to or create the list of source files for trace compiler to process
# 2. Check if the hash in trace marker remain unchanged. If not, remove marker so trace compiler will run again.
@@ -84,9 +87,11 @@
ifeq ($(GUARD_$(call sanitise,$(TRACE_MARKER))),)
GUARD_$(call sanitise,$(TRACE_MARKER)):=1
+$(if $(FLMDEBUG),$(info <debug>PAST MARKER='$(TRACE_RELEASABLE_ID)'</debug>))
# The trace compiler likes to change . into _ so we must do the same in the case of mmps with a name like
# fred.prd.mmp we want fred_prd
TRACE_PRJNAME_SANITISED:=$(subst .,_,$(TRACE_PRJNAME))
+OLDTC_TRACE_PRJNAME_SANITISED:=$(subst .,_,$(OLDTC_TRACE_PRJNAME))
JAVA_COMMAND:=$(SBS_JAVATC)
@@ -99,7 +104,6 @@
TCClass:=$(wildcard $(TRACE_COMPILER_PATH)/tracecompiler/com/nokia/tracecompiler/TraceCompilerMain.class)
ifneq ($(TCClass),) #New Interface
-TCAUTOGENDIR:=platform
TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompilerMain
define trace_compile
$(TRACE_MARKER) : $(PROJECT_META)
@@ -112,8 +116,11 @@
$(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
$(call endrule,tracecompile)
endef
+
+
+TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
+AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
else # Old inteface
-TCAUTOGENDIR:=internal
TRACE_COMPILER_START:=-classpath $(TRACE_COMPILER_PATH)/tracecompiler com.nokia.tracecompiler.TraceCompiler
# 1. Use pipe to send inputs to trace compiler to process
# 2. Create a hash regarding to source names and put it in marker.
@@ -121,7 +128,7 @@
define trace_compile
$(TRACE_MARKER) : $(PROJECT_META)
$(call startrule,tracecompile) \
- ( echo -en "$(TRACE_PRJNAME)\n$(PROJECT_META)\n"; \
+ ( echo -en "$(OLDTC_TRACE_PRJNAME)\n$(PROJECT_META)\n"; \
$(GNUCAT) $(TRACE_SOURCE_LIST); \
echo -en "*ENDOFSOURCEFILES*\n" ) | \
$(JAVA_COMMAND) $(TRACE_COMPILER_START) $(UID_TC) && \
@@ -130,23 +137,29 @@
$(GNUCAT) $(TRACE_SOURCE_LIST) ; true ; } \
$(call endrule,tracecompile)
endef
+
+
+TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(OLDTC_TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
+AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/$(OLDTC_TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
+
+# End - new/old trace compiler
endif
+# End - tracecompile is defined
endif
-TRACE_DICTIONARY:=$(EPOCROOT)/epoc32/ost_dictionaries/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_Dictionary.xml
-AUTOGEN_HEADER:=$(EPOCROOT)/epoc32/include/$(TCAUTOGENDIR)/symbiantraces/autogen/$(TRACE_PRJNAME_SANITISED)_0x$(UID_TC)_TraceDefinitions.h
$(eval $(trace_compile))
$(eval $(call GenerateStandardCleanTarget, $(TRACE_PATH)/tracebuilder.cache $(TRACE_MARKER) $(TRACE_SOURCE_LIST),,))
$(call makepath,$(TRACE_PATH) $(dir $(TRACE_DICTIONARY) $(AUTOGEN_HEADER)))
-# End sanity guard
+# End - guard that prevents repeated calls to TCom
endif
$(eval $(call GenerateStandardCleanTarget,$(TRACE_HEADERS),,))
+# End - Nothing to trace (not trace path in include)
else
# Indicate to following parts of the FLM that we actually won't run
# trace compiler so they can set dependencies accordingly.
--- a/sbsv2/raptor/lib/flm/win32.flm Fri Apr 30 17:18:03 2010 +0100
+++ b/sbsv2/raptor/lib/flm/win32.flm Sat May 01 00:09:59 2010 +0100
@@ -199,7 +199,8 @@
endif
-BINTARGET:=$(BINDIR)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
+TARGETEXT:=$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
+BINTARGET:=$(BINDIR)/$(TARGET).$(TARGETEXT)
# Run trace compiler #####################################
@@ -217,7 +218,8 @@
# USE_TRACE_COMPILER defaults to blank in Raptor config.
# Users can turn TC on by setting it to 1 in user config.
-ifneq ($(USE_TRACE_COMPILER),)
+ifneq ($(USE_TRACE_COMPILER),)
+ # TARGETEXT must be set before here
include $(FLMHOME)/tracecompiler.mk
TC_RELEASABLES:=$(TRACE_DICTIONARY) $(AUTOGEN_HEADER)
ifneq ($(TRACE_PATH),)
@@ -230,7 +232,7 @@
## IMPORT LIBRARY ##
####################
-IMPORTLIBLINKAS:=$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
+IMPORTLIBLINKAS:=$(TARGET).$(TARGETEXT)
# LINKAS, if supplied, only applies to IMPLIB TARGETTYPEs
ifeq ($(BASE_TYPE),importlib)
ifneq ($(LINKAS),)
@@ -298,7 +300,7 @@
#############
ifeq ($(COPY_FOR_STATIC_LINKAGE),1)
- BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
+ BINTARGETSTATICLINK:=$(BINDIRSTATICLINK)/$(TARGET).$(TARGETEXT)
endif
RELEASABLES:=$(RELEASABLES) $(BINTARGET) $(BINTARGETSTATICLINK)
@@ -538,7 +540,7 @@
TMP_IMPLIB:=$(BLDDIR)/$(TARGET).lib
TMP_INFFILE:=$(BLDDIR)/$(TARGET).inf
TMP_SYMFILE:=$(if $(OPEN_ENVIRONMENT),$(BLDDIR)/$(TARGET).sym,)
- TMP_TARGET:=$(BLDDIR)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))
+ TMP_TARGET:=$(BLDDIR)/$(TARGET).$(TARGETEXT)
TMP_DEFFILE:=$(BLDDIR)/$(TARGET).def
CLEANTARGETS:=$(CLEANTARGETS) $(TMP_IMPLIB) $(TMP_INFFILE) $(TMP_TARGET) $(TMP_DEFFILE) $(TMP_SYMFILE)
@@ -579,7 +581,7 @@
$(call groupin10,$(notdir $(OBJECTFILES))) ;
$(call startrule,win32stageonelink) \
$(if $(SUPPORTS_STDCPP_NEWLIB),$(if $(STATICLIBFILES),$(CHECKLIB) $(CHECKLIB_TYPE) $(OPT.CHECKLIB.WIN32) $(STATICLIBFILES) &&,),) \
- MWSym2LibraryFiles="$(MWSym2LibraryFiles)" $(LD) $(LFLAGS) $(OPT.MENTRYPOINT)$(ENTRYSYMBOL) $(OPT.EXPORT)$(EXPORT_TYPE) $(OPT.NOCOMPACTIMPORTLIB) $(OPT.ADDCOMMAND) "out:$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE))" $(OPT.WARNINGS) off $(OPT.IMPLIB)"$(TMP_IMPLIB)" $(OPT.OUT)"$(TMP_TARGET)" $(LINKER_FIRSTSTATLIBFILE) $(NEWLIBFILE) $(WIN32_LIBRARIES) $(STATICLIBFILES) $(LINKLIBFILES) $(OPT.LIBPATH)$(BLDDIR) $(OPT.SEARCH) @$(OBJECTFILES_LRF) \
+ MWSym2LibraryFiles="$(MWSym2LibraryFiles)" $(LD) $(LFLAGS) $(OPT.MENTRYPOINT)$(ENTRYSYMBOL) $(OPT.EXPORT)$(EXPORT_TYPE) $(OPT.NOCOMPACTIMPORTLIB) $(OPT.ADDCOMMAND) "out:$(TARGET).$(TARGETEXT)" $(OPT.WARNINGS) off $(OPT.IMPLIB)"$(TMP_IMPLIB)" $(OPT.OUT)"$(TMP_TARGET)" $(LINKER_FIRSTSTATLIBFILE) $(NEWLIBFILE) $(WIN32_LIBRARIES) $(STATICLIBFILES) $(LINKLIBFILES) $(OPT.LIBPATH)$(BLDDIR) $(OPT.SEARCH) @$(OBJECTFILES_LRF) \
$(call endrule,win32stageonelink)
endef
$(eval $(win32stageonelink))
--- a/sbsv2/raptor/notes/tcomsupport.txt Fri Apr 30 17:18:03 2010 +0100
+++ b/sbsv2/raptor/notes/tcomsupport.txt Sat May 01 00:09:59 2010 +0100
@@ -2,7 +2,7 @@
-------------------
Raptor supports an updated version of the Trace Compiler which has
-an improved commandline interface that allows Raptor to specify the
+an improved command-line interface that allows Raptor to specify the
directory in which trace data should be written. This allows MMPs to
implement a new convention for where trace files are stored.
@@ -11,7 +11,7 @@
build tasks trying to create the same trace file (header/dictionary).
This caused build slowdowns and also made the trace data inaccurate.
-The standard for this directory is that the last twwo elements of the
+The standard for this directory is that the last two elements of the
path should be
traces/traces_<targetname>_<ext>
@@ -21,7 +21,7 @@
traces/traces_euser_dll
The new trace compiler also creates "autogen" headers in a new location
-under epoc32/include/platform rather than epoc32/incude/internal.
+under epoc32/include/platform rather than epoc32/include/internal.
Trace Headers Directory can now also be in SYSTEMINCLUDEs
----------------------------------------------------------
@@ -46,6 +46,6 @@
Some build engines consider it a "clash" when two jobs attempt to make the
same directory. This change causes some important trace output directories
-to be created during makefile parsing which removes the (small) possibilty
+to be created during makefile parsing which removes the (small) possibility
that they would clash during the build part.
--- a/sbsv2/raptor/test/smoke_suite/tracecompiler_general.py Fri Apr 30 17:18:03 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/tracecompiler_general.py Sat May 01 00:09:59 2010 +0100
@@ -40,7 +40,7 @@
"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/wlanhwinitpermparserTraces.h",
"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/testTC/traces/fixed_id.definitions",
"$(EPOCROOT)/epoc32/ost_dictionaries/testTC_0x1000008d_Dictionary.xml",
- "$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
+ "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/testTC_0x1000008d_TraceDefinitions.h"
]
t.addbuildtargets('smoke_suite/test_resources/tracecompiler/testTC/group/bld.inf', [
"testtc_dll/armv5/udeb/wlanhwinit.o",
@@ -90,7 +90,7 @@
"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/HelloWorldTraces.h",
"$(SBS_HOME)/test/smoke_suite/test_resources/tracecompiler/TC_featurevariant/traces/fixed_id.definitions",
"$(EPOCROOT)/epoc32/ost_dictionaries/HelloWorld_0xe78a5aa3_Dictionary.xml",
- "$(EPOCROOT)/epoc32/include/internal/symbiantraces/autogen/HelloWorld_0xe78a5aa3_TraceDefinitions.h"
+ "$(EPOCROOT)/epoc32/include/platform/symbiantraces/autogen/HelloWorld_0xe78a5aa3_TraceDefinitions.h"
]
t.addbuildtargets('smoke_suite/test_resources/tracecompiler/TC_featurevariant/group/bld.inf', [
"helloworld_exe/armv5/udeb/HelloWorld.o",