summaryrefslogtreecommitdiff
path: root/classes/multimachine.bbclass
diff options
context:
space:
mode:
authorHolger Freyther <zecke@selfish.org>2006-11-18 16:55:13 +0000
committerHolger Freyther <zecke@selfish.org>2006-11-18 16:55:13 +0000
commit56b7d78a034187f66e08f3b3e2de55bd878cf9b5 (patch)
treed6f4033c0064f41c2205502d10c651e8710c96aa /classes/multimachine.bbclass
parent9e61974759ef6e4ff9538a33bab0e82b1b4381dd (diff)
Micro-Optimisation decreasing initial parsing time by 10%
python () {} and python __anonymous () {} are as the same says functions without a name. They get executed when the main bb file is completely parsed. This is used to set information like FILESDIR. This is a python method so it gets evaled which means compiled and executed a lot of times. By moving the code of the anonfunc into a proper method this is only compiled once. The result is is the 10% speed up when parsing. Reindent anonfuncs and new defs without tabs and four spaces
Diffstat (limited to 'classes/multimachine.bbclass')
-rw-r--r--classes/multimachine.bbclass31
1 files changed, 19 insertions, 12 deletions
diff --git a/classes/multimachine.bbclass b/classes/multimachine.bbclass
index 30a285e5f3..d63aeb6d73 100644
--- a/classes/multimachine.bbclass
+++ b/classes/multimachine.bbclass
@@ -4,19 +4,26 @@ STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_
# Find any machine specific sub packages and if present, mark the
# whole package as machine specific for multimachine purposes.
-python __anonymous () {
- packages = bb.data.getVar('PACKAGES', d, 1).split()
- macharch = bb.data.getVar('MACHINE_ARCH', d, 1)
- multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1)
- for pkg in packages:
- pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1)
- # We could look for != PACKAGE_ARCH here but how to choose
- # if multiple differences are present?
- # Look through IPKG_ARCHS for the priority order?
- if pkgarch and pkgarch == macharch:
- multiarch = macharch
+def multi_machine_after_parse(d):
+ import bb
+ packages = bb.data.getVar('PACKAGES', d, 1).split()
+ macharch = bb.data.getVar('MACHINE_ARCH', d, 1)
+ multiarch = bb.data.getVar('PACKAGE_ARCH', d, 1)
+
+ for pkg in packages:
+ pkgarch = bb.data.getVar("PACKAGE_ARCH_%s" % pkg, d, 1)
+
+ # We could look for != PACKAGE_ARCH here but how to choose
+ # if multiple differences are present?
+ # Look through IPKG_ARCHS for the priority order?
+ if pkgarch and pkgarch == macharch:
+ multiarch = macharch
- bb.data.setVar('MULTIMACH_ARCH', multiarch, d)
+ bb.data.setVar('MULTIMACH_ARCH', multiarch, d)
+
+
+python __anonymous () {
+ multi_machine_after_parse(d)
}