[oe] [PATCH 6/8] classes, bitbake.conf: Add MACHINE_SYS and CURRENT_TARGET_SYS

Khem Raj raj.khem at gmail.com
Tue Jul 27 06:48:33 UTC 2010


* construct *VENDOR variable from TARGET_SUB_ARCH and DISTRO_VENDOR.

* MULTIMACH_* are no longer needed TARGET_SYS is distinct enough to get
  multi-machine builds going in same tmpdir.

* MACHINE_SYS expands to ${MACHINE}${TARGET_VENDOR}-${TARGET_OS}

* CURRENT_TARGET_SYS is defined based upon if a recipe is machine
  specific then it will be MACHINE_SYS else it will be TARGET_SYS

Signed-off-by: Khem Raj <raj.khem at gmail.com>
---
 classes/cross.bbclass            |    2 +-
 classes/packaged-staging.bbclass |    2 +-
 conf/bitbake.conf                |   51 +++++++++++++++++--------------------
 3 files changed, 25 insertions(+), 30 deletions(-)

diff --git a/classes/cross.bbclass b/classes/cross.bbclass
index 5776a37..75b2abe 100644
--- a/classes/cross.bbclass
+++ b/classes/cross.bbclass
@@ -15,6 +15,7 @@ OLD_PACKAGE_ARCH := "${PACKAGE_ARCH}"
 PACKAGE_ARCH = "${OLD_PACKAGE_ARCH}"
 # Also save BASE_PACKAGE_ARCH since HOST_ARCH can influence it
 OLD_BASE_PACKAGE_ARCH := "${BASE_PACKAGE_ARCH}"
+BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}"
 
 HOST_ARCH = "${BUILD_ARCH}"
 HOST_VENDOR = "${BUILD_VENDOR}"
@@ -22,7 +23,6 @@ HOST_OS = "${BUILD_OS}"
 HOST_PREFIX = "${BUILD_PREFIX}"
 HOST_CC_ARCH = "${BUILD_CC_ARCH}"
 HOST_EXEEXT = "${BUILD_EXEEXT}"
-BASE_PACKAGE_ARCH = "${OLD_BASE_PACKAGE_ARCH}"
 BASEPKG_HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
 
 CPPFLAGS = "${BUILD_CPPFLAGS}"
diff --git a/classes/packaged-staging.bbclass b/classes/packaged-staging.bbclass
index fda1431..6ff8106 100644
--- a/classes/packaged-staging.bbclass
+++ b/classes/packaged-staging.bbclass
@@ -15,7 +15,7 @@ PSTAGE_PKGVERSION = "${PV}-${PR}"
 PSTAGE_PKGARCH    = "${PACKAGE_ARCH}-${HOST_OS}"
 PSTAGE_EXTRAPATH  ?= "/${OELAYOUT_ABI}/${DISTRO_PR}/"
 PSTAGE_PKGPATH    = "${DISTRO}${PSTAGE_EXTRAPATH}"
-PSTAGE_PKGPN      = "${@bb.data.expand('staging-${PN}-${MULTIMACH_ARCH}${TARGET_VENDOR}-${TARGET_OS}', d).replace('_', '-')}"
+PSTAGE_PKGPN      = "${@bb.data.expand('staging-${PN}-${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}', d).replace('_', '-')}"
 PSTAGE_PKGNAME    = "${PSTAGE_PKGPN}_${PSTAGE_PKGVERSION}_${PSTAGE_PKGARCH}.ipk"
 PSTAGE_PKG        = "${PSTAGE_DIR}/${PSTAGE_PKGPATH}/${PSTAGE_PKGNAME}"
 PSTAGE_WORKDIR   = "${TMPDIR}/pstage"
diff --git a/conf/bitbake.conf b/conf/bitbake.conf
index 66eebf3..1a4d257 100644
--- a/conf/bitbake.conf
+++ b/conf/bitbake.conf
@@ -98,7 +98,7 @@ BUILD_PREFIX = ""
 BUILD_CC_ARCH = ""
 BUILD_EXEEXT = ""
 
-HOST_ARCH = "${TARGET_SUB_ARCH}"
+HOST_ARCH = "${TARGET_ARCH}"
 HOST_OS = "${TARGET_OS}"
 HOST_VENDOR = "${TARGET_VENDOR}"
 HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
@@ -108,8 +108,11 @@ HOST_EXEEXT = ""
 
 TARGET_ARCH ?= "INVALID"
 TARGET_OS = "INVALID"
-TARGET_VENDOR = "${BUILD_VENDOR}"
-TARGET_SYS = "${TARGET_SUB_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}"
+TARGET_SUB_ARCH = "INVALID"
+DISTRO_VENDOR ?= 'oe'
+TARGET_VENDOR = ${@['-' + bb.data.getVar('TARGET_SUB_ARCH', d, 1), ''][bb.data.getVar('TARGET_SUB_ARCH', d, 1) == '']}\
+		${@['_' + bb.data.getVar('DISTRO_VENDOR', d, 1), ''][bb.data.getVar('DISTRO_VENDOR', d, 1) == '']}
+TARGET_SYS = "${TARGET_ARCH}${TARGET_VENDOR}${@['-' + bb.data.getVar('TARGET_OS', d, 1), ''][bb.data.getVar('TARGET_OS', d, 1) == ('' or 'custom')]}"
 TARGET_PREFIX = "${TARGET_SYS}-"
 TARGET_CC_ARCH = ""
 TARGET_EXEEXT = ""
@@ -126,20 +129,16 @@ SDK_EXEEXT = ""
 EXEEXT = "${HOST_EXEEXT}"
 
 BASE_PACKAGE_ARCH = "${HOST_ARCH}"
-PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
+PACKAGE_ARCH ?= "${BASE_PACKAGE_ARCH}"
 PACKAGE_EXTRA_ARCHS ?= ""
 MACHINE_ARCH = "${@oe.utils.ifelse(bool(d.getVar('MACHINE', True)), '${MACHINE}', \
-                                   'BASE_PACKAGE_ARCH')}"
-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}"
+                                   '${BASE_PACKAGE_ARCH}')}"
+MACHINE_SYS = ${MACHINE_ARCH}${TARGET_VENDOR}-${TARGET_OS}
 
-BASEPKG_HOST_SYS = "${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}"
-BASEPKG_TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
-
-#TARGET_SUB_ARCH = "${BASE_PACKAGE_ARCH}"
+CURRENT_TARGET_SYS = "${@oe.utils.ifelse(d.getVar('PACKAGE_ARCH', True) != '${BASE_PACKAGE_ARCH}', \
+					'${PACKAGE_ARCH}-${DISTRO_VENDOR}-${TARGET_OS}', \
+					'${TARGET_SYS}')}"
+PACKAGE_ARCHS = "all any noarch ${TARGET_ARCH} ${PACKAGE_EXTRA_ARCHS} ${MACHINE}"
 
 # select proper CPU to get binary locales generated
 QEMU_OPTIONS = ""
@@ -289,8 +288,8 @@ GITDIR = "${CO_DIR}/git"
 BZRDIR = "${CO_DIR}/bzr"
 HGDIR = "${CO_DIR}/hg"
 
-STAMP = "${TMPDIR}/stamps/${MULTIMACH_TARGET_SYS}/${PF}"
-WORKDIR = "${TMPDIR}/work/${MULTIMACH_TARGET_SYS}/${PF}"
+STAMP = "${TMPDIR}/stamps/${CURRENT_TARGET_SYS}/${PF}"
+WORKDIR = "${TMPDIR}/work/${CURRENT_TARGET_SYS}/${PF}"
 T = "${WORKDIR}/temp"
 D = "${WORKDIR}/image"
 S = "${WORKDIR}/${BP}"
@@ -302,16 +301,14 @@ STAGING_DIR_JAVA = "${STAGING_DIR}/java"
 STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
 STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
 STAGING_SBINDIR_NATIVE = "${STAGING_DIR_NATIVE}${sbindir_native}"
-STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${bindir_native}/${MULTIMACH_HOST_SYS}"
-STAGING_BINDIR_CROSS_BASEPKG = "${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_TARGET_SYS}"
+STAGING_BINDIR_CROSS  = "${STAGING_DIR_NATIVE}${bindir_native}/${HOST_SYS}"
+STAGING_BINDIR_CROSS_BASEPKG = "${STAGING_DIR_NATIVE}${bindir_native}/${TARGET_SYS}"
 STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${libdir_native}"
 STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${includedir_native}"
 STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${sysconfdir_native}"
 STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${datadir_native}"
 
-# This should really be MULTIMACH_HOST_SYS but that breaks "all" and machine 
-# specific packages - hack around it for now.
-STAGING_DIR_HOST = "${STAGING_DIR}/${BASEPKG_HOST_SYS}"
+STAGING_DIR_HOST = "${STAGING_DIR}/${HOST_SYS}"
 STAGING_BINDIR = "${STAGING_DIR_HOST}${bindir}"
 STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
 STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
@@ -322,9 +319,7 @@ STAGING_LOADER_DIR = "${STAGING_DIR_HOST}/loader"
 STAGING_FIRMWARE_DIR = "${STAGING_DIR_HOST}/firmware"
 STAGING_PYDIR = "${STAGING_DIR}/lib/python2.4"
 
-# This should really be MULTIMACH_TARGET_SYS but that breaks "all" and machine 
-# specific packages - hack around it for now.
-STAGING_DIR_TARGET = "${STAGING_DIR}/${BASEPKG_TARGET_SYS}"
+STAGING_DIR_TARGET = "${STAGING_DIR}/${TARGET_SYS}"
 
 STAGING_DIR_SDK = "${STAGING_DIR}/${SDK_SYS}"
 
@@ -338,7 +333,7 @@ DEPLOY_DIR_DEB = "${DEPLOY_DIR}/deb"
 DEPLOY_DIR_IMAGE = "${DEPLOY_DIR}/images"
 DEPLOY_DIR_TOOLS = "${DEPLOY_DIR}/tools"
 
-PKGDATA_DIR = "${TMPDIR}/pkgdata/${MULTIMACH_TARGET_SYS}"
+PKGDATA_DIR = "${TMPDIR}/pkgdata/${CURRENT_TARGET_SYS}"
 
 SDK_NAME = "${DISTRO}/${TARGET_ARCH}"
 SDK_PATH = "/usr/local/${SDK_NAME}"
@@ -348,7 +343,7 @@ SDKPATH = "${SDK_PATH}"
 # Kernel info.
 ##################################################################
 
-STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/kernel"
+STAGING_KERNEL_DIR = "${STAGING_DIR}/${MACHINE_SYS}/kernel"
 
 ##################################################################
 # Specific image creation and rootfs population info.
@@ -635,9 +630,9 @@ SLOT = "0"
 
 # Other
 
-export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
+export PKG_CONFIG_DIR = "${STAGING_DIR}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
 export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
-export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
+export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${TARGET_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
 export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
 
 export XDG_DATA_DIRS = "${STAGING_DATADIR}"
-- 
1.7.1





More information about the Openembedded-devel mailing list