mirror of
https://git.yoctoproject.org/poky
synced 2026-03-03 05:49:39 +01:00
of kdrive and building mesa. It's a big commit and it's still rather rough around the edges, but there is a desire to get this in early so people can review the work and help polish the changes. Some of the notable bits: • DRI support in mesa and the X server. (configured in machine conf via MACHINE_DRI_MODULES variable) • XCB backend for xlib • A fairly lite X server build with lots of legacy modules disabled. I'm sure there is plenty of other fairly low hanging fruit if we want to put more effort into reducing the size of the xserver build. Currently the server build comes in @ ~2.3MB vs a kdrive fbdev server build @ ~1MB. E.g xaa could be made conditional to save ~320K. Of course the kdrive server doesn't include glx stuff, which is a pretty big chunk. Also thanks to hrw, since I nabbed a some patches from him for this, and RP, for various bits of Poky style advice. git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5205 311d38ba-8fff-0310-9ca6-ca027cbcb966
647 lines
26 KiB
Plaintext
647 lines
26 KiB
Plaintext
##################################################################
|
|
# Standard target filesystem layout.
|
|
##################################################################
|
|
|
|
# Path prefixes
|
|
layout_prefix = "/usr"
|
|
layout_exec_prefix = "/usr"
|
|
layout_base_prefix = ""
|
|
|
|
# Base paths
|
|
layout_base_bindir = "${layout_base_prefix}/bin"
|
|
layout_base_sbindir = "${layout_base_prefix}/sbin"
|
|
layout_base_libdir = "${layout_base_prefix}/lib"
|
|
|
|
# Architecture independent paths
|
|
layout_sysconfdir = "${layout_base_prefix}/etc"
|
|
layout_localstatedir = "${layout_base_prefix}/var"
|
|
layout_servicedir = "${layout_base_prefix}/srv"
|
|
layout_sharedstatedir = "${layout_prefix}/com"
|
|
layout_datadir = "${layout_prefix}/share"
|
|
layout_infodir = "${layout_datadir}/info"
|
|
layout_mandir = "${layout_datadir}/man"
|
|
layout_docdir = "${layout_datadir}/doc"
|
|
|
|
# Architecture dependent paths
|
|
layout_bindir = "${layout_exec_prefix}/bin"
|
|
layout_sbindir = "${layout_exec_prefix}/sbin"
|
|
layout_libdir = "${layout_exec_prefix}/lib"
|
|
layout_includedir = "${layout_exec_prefix}/include"
|
|
layout_libexecdir = "${layout_exec_prefix}/libexec"
|
|
|
|
##################################################################
|
|
# Standard target filesystem paths.
|
|
##################################################################
|
|
|
|
# Path prefixes
|
|
export base_prefix = ""
|
|
export prefix = "${layout_prefix}"
|
|
export exec_prefix = "${layout_exec_prefix}"
|
|
|
|
# Base paths
|
|
export base_bindir = "${layout_base_bindir}"
|
|
export base_sbindir = "${layout_base_sbindir}"
|
|
export base_libdir = "${layout_base_libdir}"
|
|
|
|
# Architecture independent paths
|
|
export datadir = "${layout_datadir}"
|
|
export sysconfdir = "${layout_sysconfdir}"
|
|
export sharedstatedir = "${layout_sharedstatedir}"
|
|
export localstatedir = "${layout_localstatedir}"
|
|
export infodir = "${layout_infodir}"
|
|
export mandir = "${layout_mandir}"
|
|
export docdir = "${layout_docdir}"
|
|
export servicedir = "${layout_servicedir}"
|
|
|
|
# Architecture dependent paths
|
|
export bindir = "${layout_bindir}"
|
|
export sbindir = "${layout_sbindir}"
|
|
export libexecdir = "${layout_libexecdir}"
|
|
export libdir = "${layout_libdir}"
|
|
export includedir = "${layout_includedir}"
|
|
export oldincludedir = "${layout_includedir}"
|
|
|
|
##################################################################
|
|
# 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 = ""
|
|
|
|
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}"
|
|
|
|
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 = ""
|
|
|
|
BASE_PACKAGE_ARCH = "${HOST_ARCH}"
|
|
PACKAGE_ARCH = "${BASE_PACKAGE_ARCH}"
|
|
MACHINE_ARCH = "${@[bb.data.getVar('HOST_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
|
|
ASSUME_PROVIDED = "\
|
|
bzip2-native \
|
|
cvs-native \
|
|
grep-native \
|
|
diffstat-native \
|
|
patch-native \
|
|
perl-native-runtime \
|
|
python-native-runtime \
|
|
svn-native \
|
|
tar-native \
|
|
texinfo-native \
|
|
util-linux-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]}"
|
|
DEBPV = "${EXTENDPEVER}${PV}-${PR}"
|
|
P = "${PN}-${PV}"
|
|
|
|
# Package info.
|
|
|
|
SECTION = "base"
|
|
PRIORITY = "optional"
|
|
DESCRIPTION = "Version ${PV}-${PR} of package ${PN}"
|
|
LICENSE = "unknown"
|
|
MAINTAINER = "OpenedHand <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"
|
|
|
|
SOLIBSDEV = ".so"
|
|
SOLIBSDEV_darwin = ".dylib"
|
|
SOLIBSDEV_darwin8 = ".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} (= ${DEBPV})"
|
|
|
|
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} (= ${DEBPV})"
|
|
|
|
FILES_${PN}-locale = "${datadir}/locale"
|
|
|
|
# File manifest
|
|
|
|
export MANIFEST = "${FILESDIR}/manifest"
|
|
|
|
FILE_DIRNAME = "${@os.path.dirname(bb.data.getVar('FILE', d))}"
|
|
FILESPATH = "${FILE_DIRNAME}/${PF}:${FILE_DIRNAME}/${P}:${FILE_DIRNAME}/${PN}:${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))]}"
|
|
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}/${P}"
|
|
B = "${S}"
|
|
|
|
STAGING_DIR = "${TMPDIR}/staging"
|
|
|
|
STAGING_DIR_NATIVE = "${STAGING_DIR}/${BUILD_SYS}"
|
|
STAGING_BINDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_bindir}"
|
|
STAGING_BINDIR_CROSS = "${STAGING_DIR_NATIVE}${layout_bindir}/${MULTIMACH_HOST_SYS}"
|
|
STAGING_LIBDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_libdir}"
|
|
STAGING_INCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_includedir}"
|
|
STAGING_ETCDIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_sysconfdir}"
|
|
STAGING_DATADIR_NATIVE = "${STAGING_DIR_NATIVE}${layout_datadir}"
|
|
|
|
# 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}${layout_bindir}"
|
|
STAGING_LIBDIR = "${STAGING_DIR_HOST}${layout_libdir}"
|
|
STAGING_INCDIR = "${STAGING_DIR_HOST}${layout_includedir}"
|
|
STAGING_DATADIR = "${STAGING_DIR_HOST}${layout_datadir}"
|
|
STAGING_EXECPREFIXDIR = "${STAGING_DIR_HOST}${layout_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}"
|
|
|
|
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}"
|
|
SDK_PREFIX = "/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 = "${TMPDIR}/rootfs"
|
|
IMAGE_BASENAME = "${PN}"
|
|
IMAGE_NAME = "${IMAGE_BASENAME}-${MACHINE}-${DATETIME}"
|
|
IMAGE_LINK_NAME = "${IMAGE_BASENAME}-${MACHINE}"
|
|
|
|
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 ${IMAGE_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 ${IMAGE_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)"
|
|
|
|
EXTRA_IMAGECMD = ""
|
|
EXTRA_IMAGECMD_jffs2 = "--pad --little-endian --eraseblock=0x40000"
|
|
EXTRA_IMAGECMD_yaffs2 = "1"
|
|
EXTRA_IMAGECMD_squashfs = ""
|
|
EXTRA_IMAGECMD_squashfs-lzma = ""
|
|
|
|
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"
|
|
|
|
EXTRA_IMAGEDEPENDS = ""
|
|
|
|
##################################################################
|
|
# Toolchain info.
|
|
##################################################################
|
|
|
|
CROSS_DIR = "${TMPDIR}/cross/${BASE_PACKAGE_ARCH}"
|
|
CROSS_DATADIR = "${CROSS_DIR}/share"
|
|
PATH_prepend = "${STAGING_BINDIR_CROSS}:${STAGING_DIR_NATIVE}${layout_sbindir}:${STAGING_BINDIR_NATIVE}:${CROSS_DIR}/bin:${STAGING_DIR_NATIVE}${layout_base_sbindir}:${STAGING_DIR_NATIVE}${layout_base_bindir}:"
|
|
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}${layout_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}${layout_libdir} \
|
|
# -Wl,-rpath-link,${STAGING_DIR_TARGET}${layout_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"
|
|
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.
|
|
##################################################################
|
|
|
|
GNU_MIRROR = "ftp://ftp.gnu.org/gnu"
|
|
DEBIAN_MIRROR = "ftp://ftp.debian.org/debian/pool"
|
|
SOURCEFORGE_MIRROR = "http://downloads.sourceforge.net"
|
|
GPE_MIRROR = "http://gpe.linuxtogo.org/download/source"
|
|
GPEPHONE_MIRROR = "http://gpephone.linuxtogo.org/download/gpephone"
|
|
GPE_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/base;module=${PN}"
|
|
GPE_EXTRA_SVN = "svn://projects.linuxtogo.org/svn/gpe/trunk/extra;module=${PN}"
|
|
GPEPHONE_SVN = "svn://projects.linuxtogo.org/svn/gpephone/trunk/source;module=${PN}"
|
|
XLIBS_MIRROR = "http://xlibs.freedesktop.org/release"
|
|
XORG_MIRROR = "http://xorg.freedesktop.org/releases"
|
|
GNOME_MIRROR = "http://ftp.gnome.org/pub/GNOME/sources"
|
|
FREEBSD_MIRROR = "ftp://ftp.freebsd.org/pub/FreeBSD/"
|
|
HANDHELDS_CVS = "cvs://anoncvs:anoncvs@anoncvs.handhelds.org/cvs"
|
|
E_CVS = "cvs://anonymous@anoncvs.enlightenment.org/var/cvs/e"
|
|
E_URI = "http://enlightenment.freedesktop.org/files"
|
|
FREEDESKTOP_CVS = "cvs://anoncvs:anoncvs@anoncvs.freedesktop.org/cvs"
|
|
FREESMARTPHONE_GIT = "git://git.freesmartphone.org"
|
|
GENTOO_MIRROR = "http://distro.ibiblio.org/pub/linux/distributions/gentoo/distfiles"
|
|
APACHE_MIRROR = "http://www.apache.org/dist"
|
|
KERNELORG_MIRROR = "http://kernel.org/"
|
|
|
|
# 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 = "${@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}${layout_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/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 ?= "jffs2"
|
|
PCMCIA_MANAGER ?= "pcmcia-cs"
|
|
DEFAULT_TASK_PROVIDER ?= "task-base"
|
|
MACHINE_TASK_PROVIDER ?= "${DEFAULT_TASK_PROVIDER}"
|
|
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"
|
|
MACHINE_DRI_MODULES ?= "auto"
|
|
|
|
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", "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)}"
|