summaryrefslogtreecommitdiff
path: root/classes/multimachine.bbclass
blob: 0286a29515ff00cfece9a2d50884a5a5fba81de5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
STAMP = "${TMPDIR}/stamps/${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}/${PF}"
WORKDIR = "${TMPDIR}/work/${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}/${PF}"
STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}/kernel"
# Enable me to fix pkgdata problems with multimachine
# Requires all install tasks to rerun (wipe all install stamps from tmp/stamps/
#PKGDATA_DIR = "${STAGING_DIR}/pkgdata/${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}"

# Find any machine specific sub packages and if present, mark the 
# whole package as machine specific for multimachine purposes.


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 PACKAGE_ARCHS for the priority order?
        if pkgarch and pkgarch == macharch:
            multiarch = macharch

    bb.data.setVar('MULTIMACH_ARCH', multiarch, d)


python __anonymous () {
    multi_machine_after_parse(d)
}