summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Purdie <rpurdie@rpsys.net>2006-05-28 18:49:08 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2006-05-28 18:49:08 +0000
commitf18661145bcacd7adca80e31cf3ee214f3ad7078 (patch)
tree567da405ed14f736299f0389e5aa15f3e724bb57
parentdb176af0bf1987aac2502954576d9265a92b80fe (diff)
multimachine: Change from an include to a .bblass (and update distros using multimachine accordingly). Add code to find packages with machine specific subpackages and build these in a multimachine compatible way.
-rw-r--r--classes/multimachine.bbclass22
-rw-r--r--conf/distro/angstrom.conf4
-rw-r--r--conf/distro/familiar.conf4
-rw-r--r--conf/distro/include/.mtn2git_empty0
-rw-r--r--conf/distro/include/multimachine.conf3
-rw-r--r--conf/distro/jlime-donkey.conf12
-rw-r--r--conf/distro/openzaurus.conf4
7 files changed, 30 insertions, 19 deletions
diff --git a/classes/multimachine.bbclass b/classes/multimachine.bbclass
new file mode 100644
index 0000000000..2248f326cc
--- /dev/null
+++ b/classes/multimachine.bbclass
@@ -0,0 +1,22 @@
+STAMP = "${TMPDIR}/stamps/${MULTIMACH_ARCH}-${HOST_OS}/${PF}"
+WORKDIR = "${TMPDIR}/work/${MULTIMACH_ARCH}-${HOST_OS}/${PF}"
+STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_ARCH}-${HOST_OS}/kernel"
+
+# 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
+
+ bb.data.setVar('MULTIMACH_ARCH', multiarch, d)
+}
diff --git a/conf/distro/angstrom.conf b/conf/distro/angstrom.conf
index 403b13934f..100017410d 100644
--- a/conf/distro/angstrom.conf
+++ b/conf/distro/angstrom.conf
@@ -12,10 +12,8 @@ ANGSTROM_URI = "http://www.angstrom-distribution.org/"
MAINTAINER = "Angstrom Developers <angstrom-dev@handhelds.org>"
#use ipkg package format with debian style naming
-INHERIT += "package_ipk debian"
-
#use multimachine buildrules
-include conf/distro/include/multimachine.conf
+INHERIT += "package_ipk debian multimachine"
#Generate locales on the buildsystem instead of on the target. Speeds up first boot, set to "1" to enable
PREFERRED_PROVIDER_qemu-native = "qemu-qop-nogfx-native"
diff --git a/conf/distro/familiar.conf b/conf/distro/familiar.conf
index da5caa7998..2646fe78a6 100644
--- a/conf/distro/familiar.conf
+++ b/conf/distro/familiar.conf
@@ -4,7 +4,7 @@
MAINTAINER ?= "Familiar Developers <familiar-dev@handhelds.org>"
-INHERIT += "package_ipk debian"
+INHERIT += "package_ipk debian multimachine"
TARGET_OS = "linux"
BOOTSTRAP_EXTRA_RDEPENDS += "familiar-version"
@@ -15,5 +15,3 @@ PARALLEL_INSTALL_MODULES = "1"
UDEV_DEVFS_RULES = "1"
DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION if you really want to build an unversioned distro')}"
-
-include conf/distro/include/multimachine.conf
diff --git a/conf/distro/include/.mtn2git_empty b/conf/distro/include/.mtn2git_empty
deleted file mode 100644
index e69de29bb2..0000000000
--- a/conf/distro/include/.mtn2git_empty
+++ /dev/null
diff --git a/conf/distro/include/multimachine.conf b/conf/distro/include/multimachine.conf
deleted file mode 100644
index 1f73ffd30f..0000000000
--- a/conf/distro/include/multimachine.conf
+++ /dev/null
@@ -1,3 +0,0 @@
-STAMP = "${TMPDIR}/stamps/${PACKAGE_ARCH}-${HOST_OS}/${PF}"
-WORKDIR = "${TMPDIR}/work/${PACKAGE_ARCH}-${HOST_OS}/${PF}"
-STAGING_KERNEL_DIR = "${STAGING_DIR}/${PACKAGE_ARCH}-${HOST_OS}/kernel"
diff --git a/conf/distro/jlime-donkey.conf b/conf/distro/jlime-donkey.conf
index 01c90a5b26..dfdbe19e46 100644
--- a/conf/distro/jlime-donkey.conf
+++ b/conf/distro/jlime-donkey.conf
@@ -53,7 +53,11 @@ PREFERRED_VERSION_xserver-kdrive = "0.0+cvs20060312"
#<>
#<>Other Specific stuff.
#<>
-INHERIT += "package_tar package_ipk"
+#<>
+#<>We want to be able to build this for all jornadas so
+#<>to not mess up the folders we need to make them dynamic.
+#<>It will use different folders depending on Arch (set in local.conf)
+INHERIT += "package_tar package_ipk multimachine"
BBINCLUDELOGS = "yes"
IMAGE_FSTYPES = "tar.bz2"
TARGET_OS = "linux"
@@ -76,12 +80,6 @@ include conf/distro/preferred-opie-versions.inc
PCMCIA_MANAGER = "pcmciautils"
#<>
-#<>We want to be able to build this for all jornadas so
-#<>to not mess up the folders we need to make them dynamic.
-#<>It will use different folders depending on Arch (set in local.conf)
-include conf/distro/include/multimachine.conf
-
-#<>
#<> Dont wanna break stuff when "some" packages do -O3, so lets set it at -O2
#<>
FULL_OPTIMIZATION = "-O2"
diff --git a/conf/distro/openzaurus.conf b/conf/distro/openzaurus.conf
index edcbacc80e..b7f456320f 100644
--- a/conf/distro/openzaurus.conf
+++ b/conf/distro/openzaurus.conf
@@ -5,7 +5,7 @@
DISTRO = "openzaurus"
DISTRO_NAME = "OpenZaurus"
-INHERIT += " package_ipk debian"
+INHERIT += " package_ipk debian multimachine"
# For some reason, this doesn't work
# TARGET_OS ?= "linux"
TARGET_OS = "linux"
@@ -16,5 +16,3 @@ BOOTSTRAP_EXTRA_RDEPENDS += "openzaurus-version"
PARALLEL_INSTALL_MODULES = "1"
DISTRO_CHECK := "${@bb.data.getVar("DISTRO_VERSION",d,1) or bb.fatal('Remove this line or set a dummy DISTRO_VERSION if you really want to build an unversioned distro')}"
-
-include conf/distro/include/multimachine.conf