yocto-kernel: fix kmachine to deal with overrides

BSPs are built from a particular branch of the kernel repository
which is specfied via the mapping of MACHINE to KMACHINE. Unless
a global branch is being forced (like libc headers), KMACHINE
is an override on a per machine basis.

Because KMACHINE is typically override we must first try the
most specific variant KMACHINE_<machine> and if that is undefined
look for a fallack default. This allows any combination of
variables to work (and at the time the anonymous python
executes) safely and get us a properly defined branch for the
fetcher and build.

Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
This commit is contained in:
Bruce Ashfield 2010-12-22 16:29:28 -05:00 committed by Saul Wold
parent 22cf272eb6
commit 54d4b8e861
1 changed files with 5 additions and 2 deletions

View File

@ -29,10 +29,13 @@ python __anonymous () {
# The branch for a build is:
# yocto/<kernel type>/${KMACHINE} or
# yocto/<kernel type>/${KMACHINE}/base
bb.data.setVar("KBRANCH", bb.data.expand("${KMACHINE}",d), d)
mach = bb.data.getVar("KMACHINE_" + bb.data.expand("${MACHINE}",d), d, 1)
if mach == None:
mach = bb.data.getVar("KMACHINE", d, 1)
bb.data.setVar("KBRANCH", mach, d)
bb.data.setVar("KMETA", "meta", d)
mach = bb.data.getVar("KMACHINE", d, 1)
# drop the "/base" if it was on the KMACHINE
kmachine = mach.replace('/base','')
# drop everything but the last segment