From 439db2032c8b3446fc3bbae945370d2f28b0d2c2 Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Sun, 28 May 2006 21:58:59 +0000 Subject: Change multimachine to a bbclass and update distro configurations. Add multimachine functionlity to cope with packages with machine specific sub packages. Also applied to OE git-svn-id: https://svn.o-hand.com/repos/poky/trunk@450 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- build/conf/local.conf.sample | 1 - openembedded/classes/multimachine.bbclass | 22 ++++++++++++++++++++++ openembedded/conf/distro/angstrom.conf | 4 +--- openembedded/conf/distro/familiar.conf | 4 +--- openembedded/conf/distro/include/multimachine.conf | 3 --- openembedded/conf/distro/openzaurus.conf | 4 +--- openembedded/conf/distro/poky.conf | 2 +- 7 files changed, 26 insertions(+), 14 deletions(-) create mode 100644 openembedded/classes/multimachine.bbclass delete mode 100644 openembedded/conf/distro/include/multimachine.conf diff --git a/build/conf/local.conf.sample b/build/conf/local.conf.sample index 08e92eab70..dcdf80024b 100755 --- a/build/conf/local.conf.sample +++ b/build/conf/local.conf.sample @@ -57,5 +57,4 @@ BBINCLUDELOGS = "yes" # a cvs:// URI. Uncomment this, if you not want to pull directly from CVS. CVS_TARBALL_STASH = "http://www.oesources.org/source/current/" -include conf/distro/include/multimachine.conf ENABLE_BINARY_LOCALE_GENERATION = "1" diff --git a/openembedded/classes/multimachine.bbclass b/openembedded/classes/multimachine.bbclass new file mode 100644 index 0000000000..2248f326cc --- /dev/null +++ b/openembedded/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/openembedded/conf/distro/angstrom.conf b/openembedded/conf/distro/angstrom.conf index 403b13934f..100017410d 100644 --- a/openembedded/conf/distro/angstrom.conf +++ b/openembedded/conf/distro/angstrom.conf @@ -12,10 +12,8 @@ ANGSTROM_URI = "http://www.angstrom-distribution.org/" MAINTAINER = "Angstrom Developers " #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/openembedded/conf/distro/familiar.conf b/openembedded/conf/distro/familiar.conf index da5caa7998..2646fe78a6 100644 --- a/openembedded/conf/distro/familiar.conf +++ b/openembedded/conf/distro/familiar.conf @@ -4,7 +4,7 @@ MAINTAINER ?= "Familiar Developers " -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/openembedded/conf/distro/include/multimachine.conf b/openembedded/conf/distro/include/multimachine.conf deleted file mode 100644 index 1f73ffd30f..0000000000 --- a/openembedded/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/openembedded/conf/distro/openzaurus.conf b/openembedded/conf/distro/openzaurus.conf index edcbacc80e..b7f456320f 100644 --- a/openembedded/conf/distro/openzaurus.conf +++ b/openembedded/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 diff --git a/openembedded/conf/distro/poky.conf b/openembedded/conf/distro/poky.conf index c2aecb92ff..d43df4dd91 100644 --- a/openembedded/conf/distro/poky.conf +++ b/openembedded/conf/distro/poky.conf @@ -10,7 +10,7 @@ DISTRO_TYPE = "debug" # DISTRO_TYPE = "release" -INHERIT += " package_ipk debian" +INHERIT += " package_ipk debian multimachine" # For some reason, this doesn't work # TARGET_OS ?= "linux" TARGET_OS = "linux" -- cgit v1.2.3-54-g00ecf