mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
If sstate was used to accelerate a build, the pseudo directory might not have been created leading to subsequent task failures. Also, sstate packages were not being installed under pseudo context meaning file permissions could have been lost. Fix these problems by creating a FAKEROOTDIRS variable which bitbake ensures exists before running tasks and running the appropriate setscene tasks under fakeroot context. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
729 lines
30 KiB
Plaintext
729 lines
30 KiB
Plaintext
##################################################################
|
|
# Standard target filesystem paths.
|
|
##################################################################
|
|
|
|
# Path prefixes
|
|
export base_prefix = ""
|
|
export prefix = "/usr"
|
|
export exec_prefix = "/usr"
|
|
|
|
# Base paths
|
|
export base_bindir = "${base_prefix}/bin"
|
|
export base_sbindir = "${base_prefix}/sbin"
|
|
export base_libdir = "${base_prefix}/lib"
|
|
|
|
# Architecture independent paths
|
|
export datadir = "${prefix}/share"
|
|
export sysconfdir = "${base_prefix}/etc"
|
|
export servicedir = "${base_prefix}/srv"
|
|
export sharedstatedir = "${base_prefix}/com"
|
|
export localstatedir = "${base_prefix}/var"
|
|
export infodir = "${datadir}/info"
|
|
export mandir = "${datadir}/man"
|
|
export docdir = "${datadir}/doc"
|
|
|
|
# Architecture dependent paths
|
|
export bindir = "${exec_prefix}/bin"
|
|
export sbindir = "${exec_prefix}/sbin"
|
|
export libexecdir = "${exec_prefix}/libexec"
|
|
export libdir = "${exec_prefix}/lib"
|
|
export includedir = "${exec_prefix}/include"
|
|
export oldincludedir = "${exec_prefix}/include"
|
|
|
|
#
|
|
# These must match the various bbclass layout definitions
|
|
#
|
|
base_bindir_native = "/bin"
|
|
base_sbindir_native = "/sbin"
|
|
sysconfdir_native = "/etc"
|
|
prefix_native = "/usr"
|
|
bindir_native = "${prefix_native}/bin"
|
|
sbindir_native = "${prefix_native}/sbin"
|
|
includedir_native = "${prefix_native}/include"
|
|
libdir_native = "${prefix_native}/lib"
|
|
datadir_native = "${prefix_native}/share"
|
|
bindir_cross = "/bin"
|
|
prefix_nativesdk = "/usr"
|
|
bindir_nativesdk = "${prefix_nativesdk}/bin"
|
|
libdir_nativesdk = "${prefix_nativesdk}/lib"
|
|
base_libdir_nativesdk = "/lib"
|
|
localstatedir_nativesdk = "/var"
|
|
|
|
#
|
|
# Cross recipes need to know about the target layout
|
|
# := is used carefully here
|
|
#
|
|
target_datadir := "${datadir}"
|
|
|
|
##################################################################
|
|
# Architecture-dependent build variables.
|
|
##################################################################
|
|
|
|
BUILD_ARCH = "${@os.uname()[4]}"
|
|
BUILD_OS = "${@os.uname()[0].lower()}"
|
|
BUILD_VENDOR = ""
|
|
BUILD_SYS = "${BUILD_ARCH}${BUILD_VENDOR}-${BUILD_OS}"
|
|
BUILD_PREFIX = ""
|
|
BUILD_CC_ARCH = ""
|
|
BUILD_EXEEXT = ""
|
|
|
|
HOST_ARCH = "${TARGET_ARCH}"
|
|
HOST_OS = "${TARGET_OS}"
|
|
HOST_VENDOR = "${TARGET_VENDOR}"
|
|
HOST_SYS = "${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}"
|
|
HOST_PREFIX = "${TARGET_PREFIX}"
|
|
HOST_CC_ARCH = "${TARGET_CC_ARCH}"
|
|
HOST_EXEEXT = ""
|
|
|
|
TARGET_ARCH = "INVALID"
|
|
TARGET_OS = "INVALID"
|
|
TARGET_VENDOR = "${BUILD_VENDOR}"
|
|
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 = ""
|
|
|
|
SDK_ARCH = "${BUILD_ARCH}"
|
|
SDK_OS = "${BUILD_OS}"
|
|
SDK_VENDOR = "-pokysdk"
|
|
SDK_SYS = "${SDK_ARCH}${SDK_VENDOR}${@['-' + bb.data.getVar('SDK_OS', d, 1), ''][bb.data.getVar('SDK_OS', d, 1) == ('' or 'custom')]}"
|
|
SDK_PREFIX = "${SDK_SYS}-"
|
|
SDK_CC_ARCH = "${BUILD_CC_ARCH}"
|
|
|
|
BASE_PACKAGE_ARCH = "${HOST_ARCH}"
|
|
PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
|
|
MACHINE_ARCH = "${@[bb.data.getVar('BASE_PACKAGE_ARCH', d, 1), bb.data.getVar('MACHINE', d, 1)][bool(bb.data.getVar('MACHINE', d, 1))]}"
|
|
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}"
|
|
BASEPKG_HOST_SYS = "${BASE_PACKAGE_ARCH}${HOST_VENDOR}-${HOST_OS}"
|
|
BASEPKG_TARGET_SYS = "${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
|
|
|
# select proper CPU to get binary locales generated
|
|
QEMU_OPTIONS = ""
|
|
QEMU_OPTIONS_iwmmxt = "-cpu pxa270-c5"
|
|
QEMU_OPTIONS_armv6 = "-cpu arm1136"
|
|
QEMU_OPTIONS_armv7a = "-cpu cortex-a8"
|
|
|
|
##################################################################
|
|
# Date/time variables.
|
|
##################################################################
|
|
|
|
DATE := "${@time.strftime('%Y%m%d',time.gmtime())}"
|
|
TIME := "${@time.strftime('%H%M%S',time.gmtime())}"
|
|
DATETIME = "${DATE}${TIME}"
|
|
|
|
##################################################################
|
|
# Openembedded Software Prerequisites.
|
|
##################################################################
|
|
|
|
# python-native should be here but python relies on building
|
|
# its own in staging
|
|
# mercurial-native is required to pull mercurial repositories (hg://...)
|
|
# we don't have it yet in the recipies so let's assume it's provided by
|
|
# the underlying OS
|
|
ASSUME_PROVIDED = "\
|
|
bzip2-native \
|
|
cvs-native \
|
|
grep-native \
|
|
diffstat-native \
|
|
mercurial-native \
|
|
patch-native \
|
|
perl-native-runtime \
|
|
python-native-runtime \
|
|
svn-native \
|
|
tar-native \
|
|
texinfo-native \
|
|
virtual/libintl-native \
|
|
"
|
|
|
|
##################################################################
|
|
# Package default variables.
|
|
##################################################################
|
|
|
|
PN = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[0] or 'defaultpkgname'}"
|
|
PV = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[1] or '1.0'}"
|
|
PR = "${@bb.parse.BBHandler.vars_from_file(bb.data.getVar('FILE',d),d)[2] or 'r0'}"
|
|
PF = "${PN}-${EXTENDPE}${PV}-${PR}"
|
|
EXTENDPE = "${@['','${PE\x7d_'][bb.data.getVar('PE',d,1) > 0]}"
|
|
EXTENDPEVER = "${@['','${PE\x7d:'][bb.data.getVar('PE',d,1) > 0]}"
|
|
EXTENDPV = "${EXTENDPEVER}${PV}-${PR}"
|
|
P = "${PN}-${PV}"
|
|
|
|
# Base package name
|
|
# Automatically derives "foo" from "foo-native", "foo-cross" or "foo-initial"
|
|
# otherwise it is the same as PN and P
|
|
SPECIAL_PKGSUFFIX = "-native -cross -initial -intermediate -nativesdk -crosssdk -cross-canadian"
|
|
BPN = "${@base_prune_suffix(bb.data.getVar('PN', d, True), bb.data.getVar('SPECIAL_PKGSUFFIX', d, True).split(), d)}"
|
|
BP = "${BPN}-${PV}"
|
|
|
|
# Package info.
|
|
|
|
SECTION = "base"
|
|
PRIORITY = "optional"
|
|
SUMMARY_${PN} ?= "${PN} version ${PV}-${PR}"
|
|
SUMMARY_${PN}-dbg ?= "Debugging files for ${PN}"
|
|
SUMMARY_${PN}-dev ?= "Development files for ${PN}"
|
|
SUMMARY_${PN}-doc ?= "Documentation files for ${PN}"
|
|
DESCRIPTION_${PN} ?= "${SUMMARY_${PN}}"
|
|
DESCRIPTION_${PN}-dbg ?= "${SUMMARY_${PN}-dbg}"
|
|
DESCRIPTION_${PN}-dev ?= "${SUMMARY_${PN}-dev}"
|
|
DESCRIPTION_${PN}-doc ?= "${SUMMARY_${PN}-doc}"
|
|
LICENSE = "INVALID"
|
|
MAINTAINER = "Poky Team <poky@openedhand.com>"
|
|
HOMEPAGE = "unknown"
|
|
|
|
# Package dependencies and provides.
|
|
|
|
# Ensure that -dev packages recommend the corresponding -dev packages of their
|
|
# deps, and the same for -dbg.
|
|
DEPCHAIN_PRE = ""
|
|
DEPCHAIN_POST = "-dev -dbg"
|
|
|
|
DEPENDS = ""
|
|
RDEPENDS = ""
|
|
PROVIDES = ""
|
|
PROVIDES_prepend = "${P} ${PF} ${PN} "
|
|
RPROVIDES = ""
|
|
|
|
MULTI_PROVIDER_WHITELIST = "virtual/libintl virtual/libintl-native virtual/libintl-nativesdk virtual/xserver"
|
|
|
|
SOLIBS = ".so.*"
|
|
SOLIBS_darwin = ".*.dylib"
|
|
SOLIBS_darwin8 = ".*.dylib"
|
|
SOLIBS_darwin9 = ".*.dylib"
|
|
|
|
SOLIBSDEV = ".so"
|
|
SOLIBSDEV_darwin = ".dylib"
|
|
SOLIBSDEV_darwin8 = ".dylib"
|
|
SOLIBSDEV_darwin9 = ".dylib"
|
|
|
|
PACKAGES = "${PN}-dbg ${PN} ${PN}-doc ${PN}-dev ${PN}-locale"
|
|
PACKAGES_DYNAMIC = "${PN}-locale-*"
|
|
FILES = ""
|
|
|
|
FILES_${PN} = "${bindir}/* ${sbindir}/* ${libexecdir}/* ${libdir}/lib*${SOLIBS} \
|
|
${sysconfdir} ${sharedstatedir} ${localstatedir} \
|
|
${base_bindir}/* ${base_sbindir}/* \
|
|
${base_libdir}/*${SOLIBS} \
|
|
${datadir}/${PN} ${libdir}/${PN}/* \
|
|
${datadir}/pixmaps ${datadir}/applications \
|
|
${datadir}/idl ${datadir}/omf ${datadir}/sounds \
|
|
${libdir}/bonobo/servers"
|
|
|
|
FILES_${PN}-doc = "${docdir} ${mandir} ${infodir} ${datadir}/gtk-doc \
|
|
${datadir}/gnome/help"
|
|
SECTION_${PN}-doc = "doc"
|
|
|
|
FILES_${PN}-dev = "${includedir} ${libdir}/lib*${SOLIBSDEV} ${libdir}/*.la \
|
|
${libdir}/*.a ${libdir}/*.o ${libdir}/pkgconfig \
|
|
${datadir}/pkgconfig ${datadir}/aclocal \
|
|
${base_libdir}/*.a ${base_libdir}/*.o"
|
|
SECTION_${PN}-dev = "devel"
|
|
ALLOW_EMPTY_${PN}-dev = "1"
|
|
RDEPENDS_${PN}-dev = "${PN} (= ${EXTENDPV})"
|
|
|
|
FILES_${PN}-dbg = "${bindir}/.debug ${sbindir}/.debug ${libexecdir}/.debug ${libdir}/.debug \
|
|
${base_bindir}/.debug ${base_sbindir}/.debug ${base_libdir}/.debug ${libdir}/${PN}/.debug \
|
|
${libdir}/matchbox-panel/.debug"
|
|
SECTION_${PN}-dbg = "devel"
|
|
ALLOW_EMPTY_${PN}-dbg = "1"
|
|
RRECOMMENDS_${PN}-dbg = "${PN} (= ${EXTENDPV})"
|
|
|
|
FILES_${PN}-locale = "${datadir}/locale"
|
|
|
|
# File manifest
|
|
|
|
FILE_DIRNAME = "${@os.path.dirname(bb.data.getVar('FILE', d))}"
|
|
# FILESPATH is set in base.bbclass
|
|
#FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${FILE_DIRNAME}/${BP}:${FILE_DIRNAME}/${BPN}:${FILE_DIRNAME}/files:${FILE_DIRNAME}"
|
|
FILESDIR = "${@bb.which(bb.data.getVar('FILESPATH', d, 1), '.')}"
|
|
|
|
##################################################################
|
|
# General work and output directories for the build system.
|
|
##################################################################
|
|
|
|
TMPDIR ?= "${TOPDIR}/tmp"
|
|
CACHE = "${TMPDIR}/cache${@['', '/' + str(bb.data.getVar('MACHINE', d, 1))][bool(bb.data.getVar('MACHINE', d, 1))]}${@['', '/' + str(bb.data.getVar('SDKMACHINE', d, 1))][bool(bb.data.getVar('SDKMACHINE', d, 1))]}"
|
|
# The persistent cache should be shared by all builds
|
|
PERSISTENT_DIR = "${TMPDIR}/cache"
|
|
LOG_DIR = "${TMPDIR}/log"
|
|
CO_DIR = "${DL_DIR}"
|
|
CVSDIR = "${CO_DIR}/cvs"
|
|
SVNDIR = "${CO_DIR}/svn"
|
|
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}"
|
|
T = "${WORKDIR}/temp"
|
|
D = "${WORKDIR}/image"
|
|
S = "${WORKDIR}/${BP}"
|
|
B = "${S}"
|
|
|
|
STAGING_DIR = "${TMPDIR}/sysroots"
|
|
|
|
STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
|
|
STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${bindir_native}"
|
|
STAGING_BINDIR_CROSS = "${STAGING_BINDIR}/crossscripts"
|
|
STAGING_BINDIR_TOOLCHAIN = "${STAGING_DIR_NATIVE}${bindir_native}/${BASEPKG_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_BINDIR = "${STAGING_DIR_HOST}${bindir}"
|
|
STAGING_LIBDIR = "${STAGING_DIR_HOST}${libdir}"
|
|
STAGING_INCDIR = "${STAGING_DIR_HOST}${includedir}"
|
|
STAGING_DATADIR = "${STAGING_DIR_HOST}${datadir}"
|
|
STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${exec_prefix}"
|
|
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}"
|
|
|
|
# Setting DEPLOY_DIR outside of TMPDIR is helpful, when you are using
|
|
# packaged staging and/or multimachine.
|
|
DEPLOY_DIR ?= "${TMPDIR}/deploy"
|
|
DEPLOY_DIR_TAR = "${DEPLOY_DIR}/tar"
|
|
DEPLOY_DIR_IPK = "${DEPLOY_DIR}/ipk"
|
|
DEPLOY_DIR_RPM = "${DEPLOY_DIR}/rpm"
|
|
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}"
|
|
|
|
SDK_NAME = "${DISTRO}/${TARGET_ARCH}"
|
|
SDKPATH = "/usr/local/${SDK_NAME}"
|
|
SDKPATHNATIVE = "${SDKPATH}/sysroots/${SDK_SYS}"
|
|
|
|
##################################################################
|
|
# Kernel info.
|
|
##################################################################
|
|
|
|
OLDEST_KERNEL = "2.4.0"
|
|
STAGING_KERNEL_DIR = "${STAGING_DIR}/${MULTIMACH_TARGET_SYS}/kernel"
|
|
|
|
##################################################################
|
|
# Specific image creation and rootfs population info.
|
|
##################################################################
|
|
|
|
IMAGE_ROOTFS = "${WORKDIR}/rootfs"
|
|
IMAGE_BASENAME = "${PN}"
|
|
IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
|
|
IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
|
|
|
|
# This option allows for a precentage overage of the actaul image size rather than a
|
|
# fixed extra space
|
|
IMAGE_OVERHEAD_FACTOR ?= 1.2
|
|
|
|
# Comment this option if you want default genext2fs behavior (i.e. create minimal inode number)
|
|
IMAGE_EXTRA_OPTION ?= "-i 8192"
|
|
|
|
IMAGE_CMD = ""
|
|
IMAGE_CMD_jffs2 = "mkfs.jffs2 --root=${IMAGE_ROOTFS} --faketime --output=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.jffs2 ${EXTRA_IMAGECMD}"
|
|
IMAGE_CMD_yaffs2 = "mkyaffs2image ${EXTRA_IMAGECMD} ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.yaffs2"
|
|
IMAGE_CMD_cramfs = "mkcramfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cramfs ${EXTRA_IMAGECMD}"
|
|
IMAGE_CMD_ext2 = "genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${IMAGE_EXTRA_OPTION} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2 ${EXTRA_IMAGECMD}"
|
|
IMAGE_CMD_ext2.gz = "rm -rf ${DEPLOY_DIR_IMAGE}/tmp.gz && mkdir ${DEPLOY_DIR_IMAGE}/tmp.gz; genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${IMAGE_EXTRA_OPTION} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2 ${EXTRA_IMAGECMD}; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext2.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext2.gz; rmdir ${DEPLOY_DIR_IMAGE}/tmp.gz"
|
|
IMAGE_CMD_ext3 = "genext2fs -b $ROOTFS_SIZE -d ${IMAGE_ROOTFS} ${IMAGE_EXTRA_OPTION} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3"
|
|
IMAGE_CMD_ext3.gz = "rm -rf ${DEPLOY_DIR_IMAGE}/tmp.gz && mkdir ${DEPLOY_DIR_IMAGE}/tmp.gz; genext2fs -b ${IMAGE_ROOTFS_SIZE} -d ${IMAGE_ROOTFS} ${IMAGE_EXTRA_OPTION} ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3 ${EXTRA_IMAGECMD}; tune2fs -j ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; gzip -f -9 ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3; mv ${DEPLOY_DIR_IMAGE}/tmp.gz/${IMAGE_NAME}.rootfs.ext3.gz ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ext3.gz; rmdir ${DEPLOY_DIR_IMAGE}/tmp.gz"
|
|
IMAGE_CMD_squashfs = "mksquashfs ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs ${EXTRA_IMAGECMD} -noappend"
|
|
IMAGE_CMD_squashfs-lzma = "mksquashfs-lzma ${IMAGE_ROOTFS} ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.squashfs-lzma ${EXTRA_IMAGECMD} -noappend"
|
|
IMAGE_CMD_tar = "cd ${IMAGE_ROOTFS} && tar -cvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar ."
|
|
IMAGE_CMD_tar.gz = "cd ${IMAGE_ROOTFS} && tar -zcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.gz ."
|
|
IMAGE_CMD_tar.bz2 = "cd ${IMAGE_ROOTFS} && tar -jcvf ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.tar.bz2 ."
|
|
IMAGE_CMD_cpio = "cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio)"
|
|
IMAGE_CMD_cpio.gz = "cd ${IMAGE_ROOTFS} && (find . | cpio -o -H newc | gzip -c -9 >${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.cpio.gz)"
|
|
IMAGE_CMD_ubi = "echo \[ubifs\] > ubinize.cfg ; echo mode=ubi >> ubinize.cfg ; echo image=${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs >> ubinize.cfg ; echo vol_id=0 >> ubinize.cfg ; echo vol_type=dynamic >> ubinize.cfg ; echo vol_name=${UBI_VOLNAME} >> ubinize.cfg ; echo vol_flags=autoresize >> ubinize.cfg;mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubifs ${MKUBIFS_ARGS} && ubinize -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.rootfs.ubi ${UBINIZE_ARGS} ubinize.cfg"
|
|
IMAGE_CMD_ubifs = "mkfs.ubifs -r ${IMAGE_ROOTFS} -o ${DEPLOY_DIR_IMAGE}/${IMAGE_NAME}.ubifs.img ${MKUBIFS_ARGS}"
|
|
|
|
EXTRA_IMAGECMD = ""
|
|
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x40000"
|
|
EXTRA_IMAGECMD_yaffs2 = "1"
|
|
EXTRA_IMAGECMD_squashfs = ""
|
|
EXTRA_IMAGECMD_squashfs-lzma = ""
|
|
EXTRA_IMAGECMD_cpio = ""
|
|
EXTRA_IMAGECMD_cpio.gz = ""
|
|
EXTRA_IMAGECMD_ubi = ""
|
|
EXTRA_IMAGECMD_ubifs = ""
|
|
|
|
IMAGE_DEPENDS = ""
|
|
IMAGE_DEPENDS_jffs2 = "mtd-utils-native"
|
|
IMAGE_DEPENDS_yaffs2 = "yaffs2-utils-native"
|
|
IMAGE_DEPENDS_cramfs = "cramfs-native"
|
|
IMAGE_DEPENDS_ext2 = "genext2fs-native"
|
|
IMAGE_DEPENDS_ext2.gz = "genext2fs-native"
|
|
IMAGE_DEPENDS_ext3 = "genext2fs-native e2fsprogs-native"
|
|
IMAGE_DEPENDS_ext3.gz = "genext2fs-native e2fsprogs-native"
|
|
IMAGE_DEPENDS_squashfs = "squashfs-tools-native"
|
|
IMAGE_DEPENDS_squashfs-lzma = "squashfs-lzma-tools-native"
|
|
IMAGE_DEPENDS_ubi = "mtd-utils-native"
|
|
IMAGE_DEPENDS_ubifs = "mtd-utils-native"
|
|
|
|
EXTRA_IMAGEDEPENDS = ""
|
|
|
|
##################################################################
|
|
# Toolchain info.
|
|
##################################################################
|
|
|
|
PATH_prepend = "${STAGING_BINDIR_TOOLCHAIN}:${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${STAGING_DIR_NATIVE}${base_sbindir_native}:${STAGING_DIR_NATIVE}/${base_bindir_native}:"
|
|
export PATH
|
|
|
|
##################################################################
|
|
# Build utility info.
|
|
##################################################################
|
|
|
|
CCACHE = "${@bb.which(bb.data.getVar('PATH', d, 1), 'ccache') and 'ccache '}"
|
|
TOOLCHAIN_OPTIONS = " --sysroot=${STAGING_DIR_TARGET}"
|
|
|
|
export CC = "${CCACHE}${HOST_PREFIX}gcc ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
|
|
export CXX = "${CCACHE}${HOST_PREFIX}g++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
|
|
export F77 = "${CCACHE}${HOST_PREFIX}g77 ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
|
|
export CPP = "${HOST_PREFIX}gcc -E${TOOLCHAIN_OPTIONS}"
|
|
export LD = "${HOST_PREFIX}ld${TOOLCHAIN_OPTIONS}"
|
|
export CCLD = "${CC}"
|
|
export AR = "${HOST_PREFIX}ar"
|
|
export AS = "${HOST_PREFIX}as"
|
|
export RANLIB = "${HOST_PREFIX}ranlib"
|
|
export STRIP = "${HOST_PREFIX}strip"
|
|
export OBJCOPY = "${HOST_PREFIX}objcopy"
|
|
export OBJDUMP = "${HOST_PREFIX}objdump"
|
|
PYTHON = "${@sys.executable}"
|
|
|
|
export BUILD_CC = "${CCACHE}${BUILD_PREFIX}gcc ${BUILD_CC_ARCH}"
|
|
export BUILD_CXX = "${CCACHE}${BUILD_PREFIX}g++ ${BUILD_CC_ARCH}"
|
|
export BUILD_F77 = "${CCACHE}${BUILD_PREFIX}g77 ${BUILD_CC_ARCH}"
|
|
export BUILD_CPP = "${BUILD_PREFIX}cpp"
|
|
export BUILD_LD = "${BUILD_PREFIX}ld"
|
|
export BUILD_CCLD = "${BUILD_PREFIX}gcc"
|
|
export BUILD_AR = "${BUILD_PREFIX}ar"
|
|
export BUILD_RANLIB = "${BUILD_PREFIX}ranlib"
|
|
export BUILD_STRIP = "${BUILD_PREFIX}strip"
|
|
|
|
export MAKE = "make"
|
|
EXTRA_OEMAKE = "-e MAKEFLAGS="
|
|
|
|
##################################################################
|
|
# Patch handling.
|
|
##################################################################
|
|
PATCHTOOL = 'quilt'
|
|
PATCHRESOLVE = 'user'
|
|
|
|
##################################################################
|
|
# Build flags and options.
|
|
##################################################################
|
|
|
|
export BUILD_CPPFLAGS = "-isystem${STAGING_INCDIR_NATIVE}"
|
|
BUILDSDK_CPPFLAGS = "-isystem${STAGING_INCDIR}"
|
|
export CPPFLAGS = "${TARGET_CPPFLAGS}"
|
|
export TARGET_CPPFLAGS = ""
|
|
#export TARGET_CPPFLAGS = "-isystem${STAGING_DIR_TARGET}${includedir}"
|
|
|
|
export BUILD_CFLAGS = "${BUILD_CPPFLAGS} ${BUILD_OPTIMIZATION}"
|
|
BUILDSDK_CFLAGS = "${BUILDSDK_CPPFLAGS} ${BUILD_OPTIMIZATION}"
|
|
export CFLAGS = "${TARGET_CFLAGS}"
|
|
export TARGET_CFLAGS = "${TARGET_CPPFLAGS} ${SELECTED_OPTIMIZATION}"
|
|
|
|
export BUILD_CXXFLAGS = "${BUILD_CFLAGS} -fpermissive"
|
|
export CXXFLAGS = "${TARGET_CXXFLAGS}"
|
|
export TARGET_CXXFLAGS = "${TARGET_CFLAGS} -fpermissive"
|
|
|
|
export BUILD_LDFLAGS = "-L${STAGING_LIBDIR_NATIVE} \
|
|
-Wl,-rpath-link,${STAGING_LIBDIR_NATIVE} \
|
|
-Wl,-rpath,${STAGING_LIBDIR_NATIVE} -Wl,-O1"
|
|
|
|
BUILDSDK_LDFLAGS = "-L${STAGING_LIBDIR} \
|
|
-Wl,-rpath-link,${STAGING_LIBDIR} \
|
|
-Wl,-rpath,${libdir} -Wl,-O1 \
|
|
-L${STAGING_DIR_HOST}${base_libdir} \
|
|
-Wl,-rpath-link,${STAGING_DIR_HOST}${base_libdir} \
|
|
-Wl,-rpath,${base_libdir} -Wl,-O1"
|
|
|
|
export LDFLAGS = "${TARGET_LDFLAGS}"
|
|
export TARGET_LDFLAGS = "-Wl,-O1"
|
|
#export TARGET_LDFLAGS = "-L${STAGING_DIR_TARGET}${libdir} \
|
|
# -Wl,-rpath-link,${STAGING_DIR_TARGET}${libdir} \
|
|
# -Wl,-O1"
|
|
|
|
# Which flags to leave by strip-flags() in bin/build/oebuild.sh ?
|
|
ALLOWED_FLAGS = "-O -mcpu -march -pipe"
|
|
|
|
# Pass parallel make options to the compile task only
|
|
EXTRA_OEMAKE_prepend_task-compile = "${PARALLEL_MAKE} "
|
|
|
|
##################################################################
|
|
# Optimization flags.
|
|
##################################################################
|
|
|
|
FULL_OPTIMIZATION = "-fexpensive-optimizations -fomit-frame-pointer -frename-registers -O2 -ggdb -feliminate-unused-debug-types"
|
|
DEBUG_OPTIMIZATION = "-O -fno-omit-frame-pointer -g"
|
|
SELECTED_OPTIMIZATION = "${@bb.data.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][bb.data.getVar('DEBUG_BUILD', d, 1) == '1'], d, 1)}"
|
|
BUILD_OPTIMIZATION = "-O2"
|
|
|
|
##################################################################
|
|
# Bootstrap stuff.
|
|
##################################################################
|
|
|
|
BOOTSTRAP_EXTRA_RDEPENDS = ""
|
|
BOOTSTRAP_EXTRA_RRECOMMENDS = ""
|
|
|
|
##################################################################
|
|
# Palmtop stuff.
|
|
##################################################################
|
|
|
|
export QTDIR = "${STAGING_DIR_HOST}/qt2"
|
|
export QPEDIR = "${STAGING_DIR_HOST}"
|
|
export OPIEDIR = "${STAGING_DIR_HOST}"
|
|
export palmtopdir = "${libdir}/opie"
|
|
export palmqtdir = "${palmtopdir}"
|
|
|
|
##################################################################
|
|
# Download locations and utilities.
|
|
##################################################################
|
|
|
|
ADOBE_MIRROR = "http://fpdownload.macromedia.com/get/flashplayer/current/"
|
|
APACHE_MIRROR = "http://www.apache.org/dist"
|
|
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
|
|
E_CVS = "cvs://anonymous@anoncvs.enlightenment.org/var/cvs/e"
|
|
E_URI = "http://enlightenment.freedesktop.org/files"
|
|
FREEBSD_MIRROR = "ftp://ftp.freebsd.org/pub/FreeBSD/"
|
|
FREEDESKTOP_CVS = "cvs://anoncvs:anoncvs@anoncvs.freedesktop.org/cvs"
|
|
FREESMARTPHONE_GIT = "git://git.freesmartphone.org"
|
|
GENTOO_MIRROR = "http://distfiles.gentoo.org/distfiles"
|
|
GNOME_GIT = "git://git.gnome.org"
|
|
GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources"
|
|
GNU_MIRROR = "ftp://ftp.gnu.org/gnu"
|
|
GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
|
|
GPE_EXTRA_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/extra;module=${PN}"
|
|
GPE_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/base;module=${PN}"
|
|
GPEPHONE_MIRROR = "http://gpephone.linuxtogo.org/download/gpephone"
|
|
GPEPHONE_SVN = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source;module=${PN}"
|
|
HANDHELDS_CVS = "cvs://anoncvs:anoncvs@anoncvs.handhelds.org/cvs"
|
|
KERNELORG_MIRROR = "http://kernel.org"
|
|
SOURCEFORGE_MIRROR = "http://downloads.sourceforge.net"
|
|
XLIBS_MIRROR = "http://xlibs.freedesktop.org/release"
|
|
XORG_MIRROR = "http://xorg.freedesktop.org/releases"
|
|
|
|
# You can use the mirror of your country to get faster downloads by putting
|
|
# export DEBIAN_MIRROR = "ftp://ftp.de.debian.org/debian/pool"
|
|
# into your local.conf
|
|
|
|
FETCHCMD_svn = "/usr/bin/env svn"
|
|
FETCHCMD_cvs = "/usr/bin/env cvs"
|
|
FETCHCMD_wget = "/usr/bin/env wget -t 5 -q"
|
|
FETCHCMD_bzr = "/usr/bin/env bzr"
|
|
FETCHCMD_hg = "/usr/bin/env hg"
|
|
|
|
FETCHCOMMAND = "ERROR, this must be a BitBake bug"
|
|
FETCHCOMMAND_wget = "/usr/bin/env wget -t 5 -q --passive-ftp -P ${DL_DIR} '${URI}'"
|
|
FETCHCOMMAND_cvs = "/usr/bin/env cvs '-d${CVSROOT}' co ${CVSCOOPTS} ${CVSMODULE}"
|
|
FETCHCOMMAND_svn = "/usr/bin/env svn co ${SVNCOOPTS} ${SVNROOT} ${SVNMODULE}"
|
|
CHECKCOMMAND_wget = "/usr/bin/env wget --spider -t 5 --passive-ftp -P ${DL_DIR} '${URI}'"
|
|
RESUMECOMMAND = "ERROR, this must be a BitBake bug"
|
|
RESUMECOMMAND_wget = "/usr/bin/env wget -c -t 5 -q --passive-ftp -P ${DL_DIR} '${URI}'"
|
|
UPDATECOMMAND = "ERROR, this must be a BitBake bug"
|
|
UPDATECOMMAND_cvs = "/usr/bin/env cvs -d${CVSROOT} update -d -P ${CVSCOOPTS}"
|
|
UPDATECOMMAND_svn = "/usr/bin/env svn update ${SVNCOOPTS}"
|
|
SRCDATE = "${DATE}"
|
|
SRCREV = "INVALID"
|
|
AUTOREV = "${SRCPV}"
|
|
SRCPV = "${@bb.fetch.get_srcrev(d)}"
|
|
|
|
SRC_URI = "file://${FILE}"
|
|
|
|
# We can choose which provider of fake root privileges to use
|
|
# default is fakeroot but in Poky we use pseudo
|
|
PSEUDO_LOCALSTATEDIR ?= "${WORKDIR}/pseudo/"
|
|
FAKEROOT = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 pseudo"
|
|
FAKEROOTENV = "PSEUDO_PREFIX=${STAGING_DIR_NATIVE}${prefix_native} PSEUDO_LOCALSTATEDIR=${PSEUDO_LOCALSTATEDIR} PSEUDO_NOSYMLINKEXP=1 LD_PRELOAD=libpseudo.so LD_LIBRARY_PATH=${STAGING_LIBDIR_NATIVE}/pseudo/lib64:${STAGING_LIBDIR_NATIVE}/pseudo/lib"
|
|
FAKEROOTDIRS = "${PSEUDO_LOCALSTATEDIR}"
|
|
PREFERRED_PROVIDER_virtual/fakeroot-native ?= "pseudo-native"
|
|
|
|
|
|
##################################################################
|
|
# UI/Interaction Configuration
|
|
##################################################################
|
|
|
|
export SHELLCMDS = "bash"
|
|
# Some common terminal programs to choose from
|
|
GNOME_TERMCMD = 'gnome-terminal --disable-factory -t "$TERMWINDOWTITLE"'
|
|
GNOME_TERMCMDRUN = '${GNOME_TERMCMD} -x $SHELLCMDS'
|
|
SCREEN_TERMCMD = 'screen -D -m -t "$TERMWINDOWTITLE"'
|
|
SCREEN_TERMCMDRUN = '${SCREEN_TERMCMD} $SHELLCMDS'
|
|
XTERM_TERMCMD = 'xterm -T "$TERMWINDOWTITLE"'
|
|
XTERM_TERMCMDRUN = '${XTERM_TERMCMD} -e $SHELLCMDS'
|
|
KONSOLE_TERMCMD = 'konsole -T "$TERMWINDOWTITLE"'
|
|
KONSOLE_TERMCMDRUN = '${KONSOLE_TERMCMD} -e $SHELLCMDS'
|
|
|
|
# Set a default
|
|
TERMCMD ?= "${GNOME_TERMCMD}"
|
|
TERMCMDRUN ?= "${GNOME_TERMCMDRUN}"
|
|
|
|
##################################################################
|
|
# Miscellaneous utilities.
|
|
##################################################################
|
|
|
|
MKTEMPDIRCMD = "mktemp -d -q ${TMPBASE}"
|
|
MKTEMPCMD = "mktemp -q ${TMPBASE}"
|
|
|
|
# GNU patch tries to be intellgent about checking out read-only files from
|
|
# a RCS, which freaks out those special folks with active Perforce clients
|
|
# the following makes patch ignore RCS:
|
|
|
|
export PATCH_GET="0"
|
|
|
|
# Program to be used to build opkg packages
|
|
|
|
OPKGBUILDCMD = "opkg-build -o 0 -g 0"
|
|
|
|
##################################################################
|
|
# Not sure about the rest of this yet.
|
|
##################################################################
|
|
|
|
# slot - currently unused by OE. portage remnants
|
|
SLOT = "0"
|
|
|
|
# Other
|
|
|
|
export PKG_CONFIG_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}${libdir}/pkgconfig"
|
|
export PKG_CONFIG_PATH = "${PKG_CONFIG_DIR}:${STAGING_DATADIR}/pkgconfig"
|
|
export PKG_CONFIG_LIBDIR = "${PKG_CONFIG_DIR}"
|
|
export PKG_CONFIG_SYSROOT_DIR = "${STAGING_DIR}/${BASE_PACKAGE_ARCH}${TARGET_VENDOR}-${TARGET_OS}"
|
|
export PKG_CONFIG_DISABLE_UNINSTALLED = "yes"
|
|
|
|
export QMAKE_MKSPEC_PATH = "${STAGING_DATADIR_NATIVE}/qmake"
|
|
export STAGING_SIPDIR = "${STAGING_DATADIR_NATIVE}/sip"
|
|
export STAGING_IDLDIR = "${STAGING_DATADIR}/idl"
|
|
|
|
# library package naming
|
|
AUTO_LIBNAME_PKGS = "${PACKAGES}"
|
|
|
|
###
|
|
### Config file processing
|
|
###
|
|
|
|
# Overrides are processed left to right, so the ones that are named later take precedence.
|
|
# You generally want them to go from least to most specific.
|
|
#
|
|
# This means that an envionment variable named '<foo>_arm' overrides an
|
|
# environment variable '<foo>' (when ${TARGET_ARCH} is arm).
|
|
# An environment variable '<foo>_ramses' overrides '<foo>' but doesn't override
|
|
# '<foo>_arm' when ${MACHINE} is 'ramses'.
|
|
# If you use combination ie '<foo>_arm_ramses', then '<foo>_arm_ramses' will override
|
|
# '<foo>_arm' and then '<foo>' will be overriden with that value from '<foo>_arm'.
|
|
# And finally '<foo>_local' overrides any standard variable, but with lowest priority.
|
|
#
|
|
# 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}:forcevariable"
|
|
|
|
CPU_FEATURES ?= ""
|
|
CPU_FEATURES_arm ?= "vfp"
|
|
|
|
##################################################################
|
|
# Include the rest of the config files.
|
|
##################################################################
|
|
|
|
include conf/site.conf
|
|
include conf/auto.conf
|
|
include conf/local.conf
|
|
include conf/build/${BUILD_SYS}.conf
|
|
include conf/target/${TARGET_SYS}.conf
|
|
include conf/machine/${MACHINE}.conf
|
|
include conf/machine-sdk/${SDKMACHINE}.conf
|
|
include conf/distro/${DISTRO}.conf
|
|
include conf/documentation.conf
|
|
require conf/sanity.conf
|
|
require conf/abi_version.conf
|
|
|
|
##################################################################
|
|
# Weak variables (usually to retain backwards compatibility)
|
|
##################################################################
|
|
|
|
DL_DIR ?= "${TOPDIR}/downloads"
|
|
SSTATE_DIR ?= "${TOPDIR}/sstate-cache"
|
|
IMAGE_FSTYPES ?= "tar.gz"
|
|
PCMCIA_MANAGER ?= "pcmcia-cs"
|
|
DEFAULT_TASK_PROVIDER ?= "task-base"
|
|
MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}"
|
|
IMAGE_ROOTFS_SIZE ?= "65536"
|
|
IMAGE_ROOTFS_SIZE_ext2 ?= "65536"
|
|
IMAGE_ROOTFS_SIZE_ext2.gz ?= "65536"
|
|
IMAGE_ROOTFS_SIZE_ext3 ?= "65536"
|
|
IMAGE_ROOTFS_SIZE_ext3.gz ?= "65536"
|
|
|
|
# Forcefully set CACHE now so future changes to things like
|
|
# MACHINE don't change the path to the cache
|
|
CACHE := "${CACHE}"
|
|
|
|
# Default to disabling packaged staging code
|
|
export PSTAGING_ACTIVE = "0"
|
|
|
|
##################################################################
|
|
# Magic Cookie for SANITY CHECK
|
|
##################################################################
|
|
OES_BITBAKE_CONF = "1"
|
|
|
|
##################################################################
|
|
# Machine properties and task-base stuff
|
|
##################################################################
|
|
|
|
MACHINE_FEATURES ?= "kernel26"
|
|
DISTRO_FEATURES ?= ""
|
|
|
|
# This is used to limit what packages goes into images built, so set big by default
|
|
ROOT_FLASH_SIZE ?= "256"
|
|
|
|
MACHINE_GUI_CLASS ?= "smallscreen"
|
|
# GUI_MACHINE_CLASS is deprecated, please use MACHINE_GUI_CLASS instead
|
|
GUI_MACHINE_CLASS ?= "${MACHINE_GUI_CLASS}"
|
|
MACHINE_DISPLAY_WIDTH_PIXELS ?= "240"
|
|
MACHINE_DISPLAY_HEIGHT_PIXELS ?= "320"
|
|
MACHINE_DISPLAY_ORIENTATION ?= "0"
|
|
MACHINE_DISPLAY_BPP ?= "16"
|
|
|
|
DISTRO_EXTRA_RDEPENDS ?= ""
|
|
DISTRO_EXTRA_RRECOMMENDS ?= ""
|
|
MACHINE_EXTRA_RDEPENDS ?= ""
|
|
MACHINE_EXTRA_RRECOMMENDS ?= ""
|
|
MACHINE_ESSENTIAL_EXTRA_RDEPENDS ?= ""
|
|
MACHINE_ESSENTIAL_EXTRA_RRECOMMENDS ?= ""
|
|
IMAGE_FEATURES += "${EXTRA_IMAGE_FEATURES}"
|
|
|
|
COMBINED_FEATURES = "\
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "alsa", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "bluetooth", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "ext2", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "vfat", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "irda", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "pcmcia", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "pci", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "usbgadget", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "usbhost", d)} \
|
|
${@base_both_contain("DISTRO_FEATURES", "MACHINE_FEATURES", "wifi", d)}"
|
|
|
|
|
|
# Make sure MACHINE isn't exported
|
|
# (breaks binutils at least)
|
|
MACHINE[unexport] = "1"
|
|
|
|
# Make sure TARGET_ARCH isn't exported
|
|
# (breaks Makefiles using implicit rules, e.g. quilt, as GNU make has this
|
|
# in them, undocumented)
|
|
TARGET_ARCH[unexport] = "1"
|
|
|
|
# Make sure DISTRO isn't exported
|
|
# (breaks sysvinit at least)
|
|
DISTRO[unexport] = "1"
|
|
|