summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/base.bbclass60
-rw-r--r--classes/multimachine.bbclass30
-rw-r--r--classes/packaged-staging.bbclass3
-rw-r--r--classes/singlemachine.bbclass12
-rw-r--r--conf/bitbake.conf12
-rw-r--r--conf/distro/celinux-test.conf3
-rw-r--r--conf/distro/include/angstrom.inc3
-rw-r--r--conf/distro/include/oplinux.inc3
-rw-r--r--conf/distro/include/slugos.inc2
-rw-r--r--conf/distro/jlime-donkey.conf2
-rw-r--r--conf/distro/jlime-henchman.conf2
-rw-r--r--conf/distro/jlime-mongo.conf2
-rw-r--r--conf/distro/minimal.conf2
-rw-r--r--conf/distro/openprotium.conf2
14 files changed, 63 insertions, 75 deletions
diff --git a/classes/base.bbclass b/classes/base.bbclass
index 3c6f5a15a1..540b891669 100644
--- a/classes/base.bbclass
+++ b/classes/base.bbclass
@@ -999,10 +999,12 @@ def base_after_parse(d):
depends = depends + " git-native:do_populate_staging"
bb.data.setVarFlag('do_fetch', 'depends', depends, d)
+ # 'multimachine' handling
mach_arch = bb.data.getVar('MACHINE_ARCH', d, 1)
- old_arch = bb.data.getVar('PACKAGE_ARCH', d, 1)
- if (old_arch == mach_arch):
- # Nothing to do
+ pkg_arch = bb.data.getVar('PACKAGE_ARCH', d, 1)
+
+ if (pkg_arch == mach_arch):
+ # Already machine specific - nothing further to do
return
#
@@ -1010,26 +1012,38 @@ def base_after_parse(d):
# unless the package sets SRC_URI_OVERRIDES_PACKAGE_ARCH=0
#
override = bb.data.getVar('SRC_URI_OVERRIDES_PACKAGE_ARCH', d, 1)
- if override == '0':
- return
-
- paths = []
- for p in [ "${PF}", "${P}", "${PN}", "files", "" ]:
- path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, "${MACHINE}"), d)
- if os.path.isdir(path):
- paths.append(path)
- if len(paths) == 0:
- return
-
- for s in srcuri.split():
- if not s.startswith("file://"):
- continue
- local = bb.data.expand(bb.fetch.localpath(s, d), d)
- for mp in paths:
- if local.startswith(mp):
- #bb.note("overriding PACKAGE_ARCH from %s to %s" % (old_arch, mach_arch))
- bb.data.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}", d)
- return
+ if override != '0':
+ paths = []
+ for p in [ "${PF}", "${P}", "${PN}", "files", "" ]:
+ path = bb.data.expand(os.path.join("${FILE_DIRNAME}", p, "${MACHINE}"), d)
+ if os.path.isdir(path):
+ paths.append(path)
+ if len(paths) != 0:
+ for s in srcuri.split():
+ if not s.startswith("file://"):
+ continue
+ local = bb.data.expand(bb.fetch.localpath(s, d), d)
+ for mp in paths:
+ if local.startswith(mp):
+ #bb.note("overriding PACKAGE_ARCH from %s to %s" % (pkg_arch, mach_arch))
+ bb.data.setVar('PACKAGE_ARCH', "${MACHINE_ARCH}", d)
+ bb.data.setVar('MULTIMACH_ARCH', mach_arch, d)
+ return
+
+ multiarch = pkg_arch
+
+ packages = bb.data.getVar('PACKAGES', d, 1).split()
+ 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 == mach_arch:
+ multiarch = mach_arch
+ break
+
+ bb.data.setVar('MULTIMACH_ARCH', multiarch, d)
python () {
import bb
diff --git a/classes/multimachine.bbclass b/classes/multimachine.bbclass
deleted file mode 100644
index 945d22bfe0..0000000000
--- a/classes/multimachine.bbclass
+++ /dev/null
@@ -1,30 +0,0 @@
-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"
-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)
-}
diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass
index 5de5970880..77fd8a92c3 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
@@ -19,9 +19,6 @@ PSTAGE_PKGPN = "${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_
PSTAGE_PKGNAME = "${PSTAGE_PKGPN}_${PSTAGE_PKGVERSION}_${PSTAGE_PKGARCH}.ipk"
PSTAGE_PKG = "${DEPLOY_DIR_PSTAGE}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}"
-# multimachine.bbclass will override this but add a default in case we're not using it
-MULTIMACH_ARCH ?= "${PACKAGE_ARCH}"
-
PSTAGE_NATIVEDEPENDS = "\
shasum-native \
stagemanager-native \
diff --git a/classes/singlemachine.bbclass b/classes/singlemachine.bbclass
new file mode 100644
index 0000000000..e4b2b6f7b3
--- /dev/null
+++ b/classes/singlemachine.bbclass
@@ -0,0 +1,12 @@
+#
+# Emulates the old mode of OE operation where only one machine can be targetted.
+#
+
+MULTIMACH_TARGET_SYS = "${TARGET_SYS}"
+MULTIMACH_HOST_SYS = "${HOST_SYS}"
+
+STAMP = "${TMPDIR}/stamps/${PF}"
+WORKDIR = "${TMPDIR}/work/${PF}"
+PKGDATA_DIR = "${STAGING_DIR}/pkgdata"
+STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/kernel"
+
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 8ee1cc6838..1e385f1394 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -91,6 +91,10 @@ PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
MACHINE_ARCH = "${@[bb.data.getVar('HOST_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}"
PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
+MULTIMACH_ARCH = "${PACKAGE_ARCH}"
+MULTIMACH_TARGET_SYS = "${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
+MULTIMACH_HOST_SYS = "${MULTIMACH_ARCH}${HOST_VENDOR}-${HOST_OS}"
+
# select proper CPU to get binary locales generated
QEMU_OPTIONS = ""
QEMU_OPTIONS_iwmmxt = "-cpu pxa270-c5"
@@ -211,8 +215,8 @@ SVNDIR = "${CO_DIR}/svn"
GITDIR = "${CO_DIR}/git"
BZRDIR = "${CO_DIR}/bzr"
-STAMP = "${TMPDIR}/stamps/${PF}"
-WORKDIR = "${TMPDIR}/work/${PF}"
+STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PF}"
+WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PF}"
T = "${WORKDIR}/temp"
D = "${WORKDIR}/image"
S = "${WORKDIR}/${P}"
@@ -248,7 +252,7 @@ DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images"
DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
-PKGDATA_DIR = "${STAGING_DIR}/pkgdata"
+PKGDATA_DIR = "${STAGING_DIR}/pkgdata/${MULTIMACH_TARGET_SYS}"
SDK_NAME = "${DISTRO}/${TARGET_ARCH}"
SDK_PREFIX = "/usr/local/${SDK_NAME}"
@@ -258,7 +262,7 @@ SDK_PREFIX = "/usr/local/${SDK_NAME}"
##################################################################
OLDEST_KERNEL = "2.4.0"
-STAGING_KERNEL_DIR = "${STAGING_DIR_HOST}/kernel"
+STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/kernel"
##################################################################
# Specific image creation and rootfs population info.
diff --git a/conf/distro/celinux-test.conf b/conf/distro/celinux-test.conf
index 03dcd22d79..ad7a34d97c 100644
--- a/conf/distro/celinux-test.conf
+++ b/conf/distro/celinux-test.conf
@@ -11,9 +11,6 @@
# we want IPKG packages and Debian style naming
INHERIT += " package_ipk debian"
-# enable if build for many machines
-#INHERIT += " multimachine"
-
# we want images supporting the following features (for task-base)
DISTRO_FEATURES = "nfs pcmcia usbhost"
diff --git a/conf/distro/include/angstrom.inc b/conf/distro/include/angstrom.inc
index bbdbe7f80b..4ada4a89d4 100644
--- a/conf/distro/include/angstrom.inc
+++ b/conf/distro/include/angstrom.inc
@@ -35,9 +35,6 @@ MAINTAINER = "Angstrom Developers <angstrom-distro-devel@linuxtogo.org>"
#use debian style naming
INHERIT += "debian"
-#use multimachine buildrules
-INHERIT += "multimachine"
-
#activate config checker
INHERIT += "sanity"
diff --git a/conf/distro/include/oplinux.inc b/conf/distro/include/oplinux.inc
index a7eac524bc..36eca58241 100644
--- a/conf/distro/include/oplinux.inc
+++ b/conf/distro/include/oplinux.inc
@@ -9,9 +9,6 @@ BB_MIN_VERSION = "1.8.10"
#OPLinux and OPLinux-uclibc source mirrors
INHERIT += "oplinux-mirrors"
-#oplinux is a multimachine distro
-INHERIT += "multimachine"
-
# check for required tools and minimal BitBake version
INHERIT += "sanity"
diff --git a/conf/distro/include/slugos.inc b/conf/distro/include/slugos.inc
index 8661e5b065..b149f65f11 100644
--- a/conf/distro/include/slugos.inc
+++ b/conf/distro/include/slugos.inc
@@ -42,7 +42,7 @@ TARGET_FPU = "soft"
# glib-2.0 builds require USE_NLS to be overridden
USE_NLS_glib-2.0 = "yes"
-INHERIT += "package_ipk debian multimachine"
+INHERIT += "package_ipk debian"
# FULL_OPTIMIZATION
# Optimization settings. Os works fine and is significantly better than O2.
diff --git a/conf/distro/jlime-donkey.conf b/conf/distro/jlime-donkey.conf
index b8c7dae22e..d5b994c55c 100644
--- a/conf/distro/jlime-donkey.conf
+++ b/conf/distro/jlime-donkey.conf
@@ -81,7 +81,7 @@ PREFERRED_VERSION_busybox = "1.9.1"
#<>It will use different folders depending on Arch (set in local.conf)
#<>------------------------------------------------------------------<
SRC_DIST_LOCAL = "copy"
-INHERIT += "package_ipk package_tar multimachine src_distribute_local"
+INHERIT += "package_ipk package_tar src_distribute_local"
BBINCLUDELOGS = "yes"
IMAGE_FSTYPES = "tar.bz2"
TARGET_OS = "linux"
diff --git a/conf/distro/jlime-henchman.conf b/conf/distro/jlime-henchman.conf
index 68353b0bd9..646d335390 100644
--- a/conf/distro/jlime-henchman.conf
+++ b/conf/distro/jlime-henchman.conf
@@ -32,7 +32,7 @@ IMAGE_NAME = "${IMAGE_BASENAME}-Henchman-${MACHINE}"
#
# Naming schemes
#
-INHERIT += "debian multimachine"
+INHERIT += "debian"
#
# Packaging and output format
diff --git a/conf/distro/jlime-mongo.conf b/conf/distro/jlime-mongo.conf
index 6fb00f1452..e2b2e8b7db 100644
--- a/conf/distro/jlime-mongo.conf
+++ b/conf/distro/jlime-mongo.conf
@@ -32,7 +32,7 @@ IMAGE_NAME = "${IMAGE_BASENAME}-Mongo-${MACHINE}"
#
# Naming schemes
#
-INHERIT += "debian multimachine"
+INHERIT += "debian"
#
# Packaging and output format
diff --git a/conf/distro/minimal.conf b/conf/distro/minimal.conf
index b54b0c8c8b..e86cf5cd4f 100644
--- a/conf/distro/minimal.conf
+++ b/conf/distro/minimal.conf
@@ -19,7 +19,7 @@ DISTRO_TYPE = "debug"
#
# Naming schemes
#
-INHERIT += "debian multimachine"
+INHERIT += "debian"
#
# Packaging and output format
diff --git a/conf/distro/openprotium.conf b/conf/distro/openprotium.conf
index 533b41526b..4b620fe6be 100644
--- a/conf/distro/openprotium.conf
+++ b/conf/distro/openprotium.conf
@@ -17,7 +17,7 @@ MACHINE_TASK_PROVIDER = "task-openprotium"
#
# Naming schemes
#
-INHERIT += "debian multimachine"
+INHERIT += "debian"
#
# Packaging and output format