From 6633c4c95a713bc365f5d87acc4a94621ed50034 Mon Sep 17 00:00:00 2001 From: Otavio Salvador Date: Tue, 23 Jun 2009 11:55:29 -0300 Subject: 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 --- conf/bitbake.conf | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) (limited to 'conf') 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 '_arm' overrides an -# environment variable '' (when ${TARGET_ARCH} is arm). And the same: an -# environment variable '_ramses' overrides both '' and '_arm -# when ${MACHINE} is 'ramses'. And finally '_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 '_arm' overrides an +# environment variable '' (when ${TARGET_ARCH} is arm). And the same: an +# environment variable '_ramses' overrides both '' and '_arm +# when ${MACHINE} is 'ramses'. And finally '_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) ################################################################## -- cgit v1.2.3