# HG changeset patch # User timothy.murphy@nokia.com # Date 1272668999 -3600 # Node ID cd8318d5fb3a081d0fe0f38a75aa87850050f6d5 # Parent 49a9c0e288ac3af03d2757e8f315849c74aa27fd Somewhat more sane choice of directory. Fix problem where winscw migh have had wrong TARGETEXT var. diff -r 49a9c0e288ac -r cd8318d5fb3a sbsv2/raptor/lib/flm/e32abiv2.flm --- 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 diff -r 49a9c0e288ac -r cd8318d5fb3a sbsv2/raptor/lib/flm/tracecompiler.mk --- 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 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 INCLUDES=$(USERINCLUDE) $(SYSTEMINCLUDE))) +$(if $(FLMDEBUG),$(info TARGET=$(TARGET) TARGETEXT=$(TARGETEXT))) -# Find out TRACE_PATH -# first look for .*/traces/traces__ -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__ +TRACE_PATH:=$(call get_trace_path,/traces/traces_$(TARGET)_$(TARGETEXT)) ifneq ($(TRACE_PATH),) -# set project name as _ instead of -TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT) + TRACE_PRJNAME:=$(TRACE_RELEASABLE_ID) +else # obsolete forms for compatibility + # traces__ + TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETEXT)) + ifneq ($(TRACE_PATH),) + # set project name as _ instead of + # to trick old TCom into finding the path. + OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETEXT) + else + # traces__ + TRACE_PATH:=$(call get_trace_path,/traces_$(TARGET)_$(TARGETTYPE)) + ifneq ($(TRACE_PATH),) + # set project name as _ instead of + # to trick old TCom into finding the path. + OLDTC_TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE) + else + # traces_ + 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__ -ifeq ($(TRACE_PATH),) -TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR)))) -# set project name as _ instead of -ifneq ($(TRACE_PATH),) -TRACE_PRJNAME:=$(TARGET)_$(TARGETTYPE) -endif -endif - -# if not found look for .*/traces_ -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__ -ifeq ($(TRACE_PATH),) -TRACE_PATH:=$(strip $(foreach DIR,$(USERINCLUDE) $(SYSTEMINCLUDE),$(filter %/traces_$(TARGET)_$(TARGETTYPE),$(DIR)))) -# set project name as _ instead of -# 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 TRACE_PATH = $(TRACE_PATH))) +$(if $(FLMDEBUG),$(info TRACE_PATH='$(TRACE_PATH)' TRACE_RELEASABLE_ID='$(TRACE_RELEASABLE_ID)')) # 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 PAST MARKER='$(TRACE_RELEASABLE_ID)')) # 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. diff -r 49a9c0e288ac -r cd8318d5fb3a sbsv2/raptor/lib/flm/win32.flm --- 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)) diff -r 49a9c0e288ac -r cd8318d5fb3a sbsv2/raptor/notes/tcomsupport.txt --- 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__ @@ -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. diff -r 49a9c0e288ac -r cd8318d5fb3a sbsv2/raptor/test/smoke_suite/tracecompiler_general.py --- 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",