mirror of
https://git.yoctoproject.org/poky
synced 2026-02-13 04:03:03 +01:00
This change makes the purpose of the staging directory more obvious and the taskname more true to what it now actually does. The layout version number is increased due to the change in layout but code to convert existing directories and insert a symlink for backwards compatibility is included. Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
678 lines
28 KiB
Plaintext
678 lines
28 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"
|
|
|
|
#
|
|
# 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 \
|
|
util-linux-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"
|
|
DESCRIPTION = "Version ${PV}-${PR} of package ${PN}"
|
|
LICENSE = "unknown"
|
|
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"
|
|
|
|
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 \
|
|
${base_libdir}/*.a ${base_libdir}/*.o ${datadir}/aclocal"
|
|
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"
|
|
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_DIR_NATIVE}${bindir_native}/${MULTIMACH_HOST_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}"
|
|
|
|
##################################################################
|
|
# 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}"
|
|
IMAGE_EXTRA_SPACE = 40240
|
|
|
|
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} ${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} ${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} ${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} ${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.
|
|
##################################################################
|
|
|
|
CROSS_DIR = "${TMPDIR}/cross/${BASE_PACKAGE_ARCH}"
|
|
CROSS_DATADIR = "${CROSS_DIR}/share"
|
|
PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${sbindir_native}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/${bindir_cross}:${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 = ""
|
|
|
|
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"
|
|
|
|
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"
|
|
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 --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 --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}"
|
|
|
|
##################################################################
|
|
# UI/Interaction Configuration
|
|
##################################################################
|
|
|
|
SHELLRCCMD = "bash --rcfile $TERMRCFILE"
|
|
export SHELLCMDS = "${SHELLRCCMD}"
|
|
# 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_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
|
|
###
|
|
|
|
# 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}"
|
|
|
|
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 ?= "${TMPDIR}/downloads"
|
|
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)}"
|