summaryrefslogtreecommitdiff
path: root/conf
diff options
context:
space:
mode:
authorOtavio Salvador <otavio@ossystems.com.br>2009-06-23 11:55:29 -0300
committerOtavio Salvador <otavio@ossystems.com.br>2009-07-10 14:25:46 -0300
commit6633c4c95a713bc365f5d87acc4a94621ed50034 (patch)
treea85e83fa4dc5c021a4d6ea623f4eaa4dd7a93e6b /conf
parent04f92bf788fd4f38f0cee0a5de93ce7d4f0b94f0 (diff)
base.bbclass: add support for machine configuration fallback
To avoid duplicating a lot of configurations for similar machines we needed to introduce a new concept of machine fallback. It basically means that when a list is set in MACHINE_FALLBACK variable, following is done: - those machines are added to the override list, after the machine itself; - if any of these machines matches, the package is dealt as machine specific one. Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Diffstat (limited to 'conf')
-rw-r--r--conf/bitbake.conf37
1 files changed, 22 insertions, 15 deletions
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 8b6956453b..d26efe84f0 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -615,21 +615,6 @@ BUILDCFG_VARS_append_arm = " TARGET_FPU"
BUILDCFG_VARS_append_armeb = " TARGET_FPU"
BUILDCFG_NEEDEDVARS ?= "TARGET_ARCH TARGET_OS"
-###
-### Config file processing
-###
-
-# This means that an envionment variable named '<foo>_arm' overrides an
-# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
-# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
-# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
-#
-# This works for functions as well, they are really just environment variables.
-# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
-OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
-# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains.
-#OVERRIDES = "local:${MACHINE}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}"
-
##################################################################
# Include the rest of the config files.
##################################################################
@@ -651,6 +636,28 @@ require conf/sanity.conf
require conf/abi_version.conf
require conf/enterprise.conf
+###
+### Config file processing
+###
+
+# A list of machines that ought to be used when looking for
+# overrides. For example, geodegx and geodelx machines can have geode
+# as a fallback and then avoiding duplicated content between them.
+MACHINE_FALLBACK ?= ""
+
+MACHINE_OVERRIDES = "${@':'.join([bb.data.getVar('MACHINE', d)] + bb.data.getVar('MACHINE_FALLBACK', d).split()) or ':'}"
+
+# This means that an envionment variable named '<foo>_arm' overrides an
+# environment variable '<foo>' (when ${TARGET_ARCH} is arm). And the same: an
+# environment variable '<foo>_ramses' overrides both '<foo>' and '<foo>_arm
+# when ${MACHINE} is 'ramses'. And finally '<foo>_local' overrides anything.
+#
+# This works for functions as well, they are really just environment variables.
+# Default OVERRIDES to make compilation fail fast in case of build system misconfiguration.
+OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:fail-fast:pn-${PN}"
+# Alternative OVERRIDES definition without "fail fast", usually only for native building and Scratchbox toolchains.
+#OVERRIDES ?= "local:${MACHINE_OVERRIDES}:${DISTRO}:${TARGET_OS}:${TARGET_ARCH}:build-${BUILD_OS}:pn-${PN}"
+
##################################################################
# Weak variables (usually to retain backwards compatibility)
##################################################################