# HG changeset patch
# User timothy.murphy@nokia.com
# Date 1271441000 -3600
# Node ID bae97f3263789dcced0dedb2826d4c469221e04e
# Parent fa72431a3f1ae392a59c351609e46c9534b36eac# Parent 926e968477c6da3d3fe07526f755d012309fbbaa
Merge
diff -r fa72431a3f1a -r bae97f326378 sbsv2/raptor/bin/recipestats.py
--- a/sbsv2/raptor/bin/recipestats.py Thu Apr 15 18:47:48 2010 +0100
+++ b/sbsv2/raptor/bin/recipestats.py Fri Apr 16 19:03:20 2010 +0100
@@ -1,6 +1,6 @@
#!/usr/bin/env python
#
-# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
+# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "Eclipse Public License v1.0"
@@ -18,8 +18,18 @@
# e.g. total times and so on.
import time
+import __future__
class RecipeStats(object):
+ def __init__(self, name, count, time):
+ self.name=name
+ self.count=count
+ self.time=time
+
+ def add(self, duration):
+ self.time += duration
+
+class BuildStats(object):
STAT_OK = 0
@@ -31,7 +41,7 @@
self.retryfails = 0
def add(self, starttime, duration, name, status):
- if status != RecipeStats.STAT_OK:
+ if status != BuildStats.STAT_OK:
self.failcount += 1
if name in self.failtypes:
self.failtypes[name] += 1
@@ -43,15 +53,16 @@
return
if name in self.stats:
- (count, time) = self.stats[name]
- self.stats[name] = (count + 1, time + duration)
+ r = self.stats[name]
+ r.add(duration)
else:
- self.stats[name] = (1,duration)
+ self.stats[name] = RecipeStats(name,1,duration)
def recipe_csv(self):
- s = "# name, time, count\n"
- for (name,(count,time)) in self.stats.iteritems():
- s += '"%s",%s,%d\n' % (name, str(time), count)
+ s = '"name", "time", "count"\n'
+ l = sorted(self.stats.values(), key= lambda r: r.time, reverse=True)
+ for r in l:
+ s += '"%s",%s,%d\n' % (r.name, str(r.time), r.count)
return s
@@ -62,7 +73,7 @@
def main():
f = sys.stdin
- st = RecipeStats()
+ st = BuildStats()
recipe_re = re.compile(".*))
+$(if $(FLMDEBUG),$(info ))
# Strip switch-type parameters
#
diff -r fa72431a3f1a -r bae97f326378 sbsv2/raptor/lib/flm/resource.flm
--- a/sbsv2/raptor/lib/flm/resource.flm Thu Apr 15 18:47:48 2010 +0100
+++ b/sbsv2/raptor/lib/flm/resource.flm Fri Apr 16 19:03:20 2010 +0100
@@ -155,7 +155,8 @@
# It allows resources to be built in the right order but doesn't impose the weight of
# of full dependency information which can overwhelm make in large builds.
# The strategy is to filter out lines (apart from the target line which is the first) which don't have .rsg or
- # .mbg dependencies in them.
+ # .mbg dependencies in them. The first line can sometimes not contain the target but
+ # have a lonely "\" so we use a pattern to recognise the target line in order not to get confused.
DEPENDENCY_CORRECTOR:={ $(GNUSED) -n -r '/.*: +.$$$$/ p;\%\.((rsg)|(mbg))%I {s% ([^ \/]+\.((rsg)|(mbg)))% __EPOCROOT\/epoc32\/include\/\1%ig;s% [^_][^_][^E][^ ]+%%g;s%__EPOCROOT%$(EPOCROOT)%g; p}' && echo "" ; }
else
# Generate full dependency information
@@ -229,8 +230,8 @@
ifeq ($(TARGET_$(call sanitise,$1)),)
TARGET_$(call sanitise,$1):=1
- $(if $(FLMDEBUG),$(info generateresource: $(1) from $(2) LANG:$(3)),)
- $(if $(FLMDEBUG),$(info generateresource: copies: $(sort $(patsubst %,%/$(notdir $(1)),$(RSCCOPYDIRS)))))
+ $(if $(FLMDEBUG),$(info generateresource: $(1) from $(2) LANG:$(3)),)
+ $(if $(FLMDEBUG),$(info generateresource: copies: $(sort $(patsubst %,%/$(notdir $(1)),$(RSCCOPYDIRS)))))
CLEANTARGETS:=$$(CLEANTARGETS) $(1)
diff -r fa72431a3f1a -r bae97f326378 sbsv2/raptor/test/smoke_suite/test_resources/resource/group/testresource.mmp
--- a/sbsv2/raptor/test/smoke_suite/test_resources/resource/group/testresource.mmp Thu Apr 15 18:47:48 2010 +0100
+++ b/sbsv2/raptor/test/smoke_suite/test_resources/resource/group/testresource.mmp Fri Apr 16 19:03:20 2010 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"