diff options
author | Holger Freyther <zecke@selfish.org> | 2006-11-18 16:55:13 +0000 |
---|---|---|
committer | Holger Freyther <zecke@selfish.org> | 2006-11-18 16:55:13 +0000 |
commit | 56b7d78a034187f66e08f3b3e2de55bd878cf9b5 (patch) | |
tree | d6f4033c0064f41c2205502d10c651e8710c96aa /classes/multimachine.bbclass | |
parent | 9e61974759ef6e4ff9538a33bab0e82b1b4381dd (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.bbclass | 31 |
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) } |