#!/bin/sh # This is the bitbake wrapper script that ensures everything is set up # correctly in the environment, builds pseudo separately if it hasn't # already been built, and then runs bitbake within pseudo. export BBFETCH2=True export BB_ENV_EXTRAWHITE="PSEUDO_BUILD PSEUDO_DISABLED $BB_ENV_EXTRAWHITE" # For certain operations (i.e. that won't be actually running any tasks) # we don't need pseudo NO_BUILD_OPTS="--version -h --help -p --parse-only -s --show-versions -e --environment -g --graphviz" # Some options are useful to pass through to the initial pseudo build if # that needs to be run (for debugging) PASSTHROUGH_OPTS="-D -DD -DDD -DDDD -v" needpseudo="1" for opt in $@; do for key in $NO_BUILD_OPTS; do if [ $opt = $key ] then needpseudo="0" break fi done [ $needpseudo = "0" ] && break done # Make sure we're not using python v3.x. This check can't go into # sanity.bbclass because bitbake's source code doesn't even pass # parsing stage when used with python v3, so we catch it here so we # can offer a meaningful error message. py_v3_check=`/usr/bin/env python --version 2>&1 | grep "Python 3"` if [ "$py_v3_check" != "" ]; then echo "Bitbake is not compatible with python v3" echo "Please set up python v2 as your default python interpreter" exit 1 fi # Similarly, we now have code that doesn't parse correctly with older # versions of Python, and rather than fixing that and being eternally # vigilant for any other new feature use, just check the version here. py_v26_check=`python -c 'import sys; print sys.version_info >= (2,6,0)'` if [ "$py_v26_check" != "True" ]; then echo "BitBake requires Python 2.6 or later" exit 1 fi if [ ! -e conf/bblayers.conf ] ; then BDPRINT="" [ -n "$BUILDDIR" ] && BDPRINT=": $BUILDDIR" echo "Unable to find conf/bblayers.conf" echo "BitBake must be run from within your build directory$BDPRINT" exit 1 elif [ -z "$BUILDDIR" ] ; then BUILDDIR="`pwd`" fi needtar="1" needgit="1" TARVERSION=`tar --version | head -n 1 | cut -d ' ' -f 4` GITVERSION=`git --version | cut -d ' ' -f 3` float_test() { echo | awk 'END { exit ( !( '"$1"')); }' } version_compare() { python -c "from distutils.version import LooseVersion; import sys; sys.exit(not (LooseVersion('$1') $2 LooseVersion('$3')))" } # Tar version 1.24 and onwards handle overwriting symlinks correctly # but earlier versions do not; this needs to work properly for sstate float_test "$TARVERSION > 1.23" && needtar="0" # Need git >= 1.7.5 for git-remote --mirror=xxx syntax version_compare $GITVERSION ">=" 1.7.5 && needgit="0" buildpseudo="1" if [ $needpseudo = "1" ]; then if [ -e "$BUILDDIR/pseudodone" ]; then PSEUDOBINDIR=`cat $BUILDDIR/pseudodone` else PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2` fi if [ -e "$PSEUDOBINDIR/pseudo" ]; then buildpseudo="0" fi # Verify that the pseudo recipes are older then the pseudodone file PSEUDO_RECIPE="`dirname $0`/../meta/recipes-devtools/pseudo" if [ $buildpseudo -eq 0 ] && [ ! -d "$PSEUDO_RECIPE" ]; then echo "Unable to verify if pseudo-native is up to date..." >&2 elif [ $buildpseudo -eq 0 ]; then PSEUDO_NEWER=`find $PSEUDO_RECIPE -type f -newer $BUILDDIR/pseudodone` if [ -n "$PSEUDO_NEWER" ]; then buildpseudo="2" fi fi if [ $buildpseudo = "0" -a ! -e "$BUILDDIR/pseudodone" ] ; then echo $PSEUDOBINDIR > $BUILDDIR/pseudodone fi fi # If tar is already built, we don't want to do it again... if [ -e "$PSEUDOBINDIR/tar" -a "$needtar" = "1" ]; then needtar="0" fi # If git is already built, we don't want to do it again... if [ -e "$PSEUDOBINDIR/git" -a "$needgit" = "1" ]; then needgit="0" fi if [ $needpseudo = "0" ]; then buildpseudo="0" fi # If pseudo-native is an argument, assume the user wants to build pseudo-native! if [ $needpseudo != "0" -a $buildpseudo -eq 0 ]; then for opt in $@; do if [ "$opt" = "pseudo-native" ]; then buildpseudo="3" break fi done fi OLDPATH=$PATH export PATH=`echo $PATH | sed s#[^:]*/scripts:##` if [ $buildpseudo -gt 0 ]; then [ $buildpseudo -eq 1 ] && echo "Pseudo is not present but is required, building this first before the main build" [ $buildpseudo -eq 2 ] && echo "Pseudo may be out of date, rebuilding pseudo before the main build" [ $buildpseudo -eq 3 ] && echo "Building pseudo-native before main build" export PSEUDO_BUILD=1 TARTARGET="tar-replacement-native" if [ $needtar = "0" ]; then TARTARGET="" fi GITTARGET="git-replacement-native" if [ $needgit = "0" ]; then GITTARGET="" fi # Pass through debug options additionalopts="" for opt in $@; do for key in $PASSTHROUGH_OPTS; do if [ $opt = $key ] then additionalopts="$additionalopts $opt" break fi done done bitbake pseudo-native $TARTARGET $GITTARGET $additionalopts -c populate_sysroot ret=$? if [ "$ret" != "0" ]; then exit 1 fi PSEUDOBINDIR=`bitbake -e | grep STAGING_BINDIR_NATIVE=\" | cut -d '=' -f2 | cut -d '"' -f2` ret=$? if [ "$ret" != "0" ]; then exit 1 fi echo $PSEUDOBINDIR > $BUILDDIR/pseudodone # This needs to exist in case pseudo has to log somewhere mkdir -p $PSEUDOBINDIR/../../var/pseudo fi BITBAKE=`which bitbake` export PATH=$OLDPATH if [ $needpseudo = "1" ]; then export PSEUDO_BUILD=2 PSEUDO_BINDIR=$PSEUDOBINDIR PSEUDO_LIBDIR=$PSEUDOBINDIR/../lib/pseudo/lib PSEUDO_PREFIX=$PSEUDOBINDIR/../../ PSEUDO_DISABLED=1 $PSEUDOBINDIR/pseudo $BITBAKE $@ else export PSEUDO_BUILD=0 $BITBAKE $@ fi ret=$? exit $ret sses/angstrom.bbclass?id2=0c1daa971d33947ba05f464704cee6b38ac67674'>classes/angstrom.bbclass19
-rw-r--r--classes/autotools.bbclass75
-rw-r--r--classes/autotools_stage.bbclass5
-rw-r--r--classes/base.bbclass957
-rw-r--r--classes/binconfig.bbclass58
-rw-r--r--classes/bootimg.bbclass61
-rw-r--r--classes/canadian-cross.bbclass81
-rw-r--r--classes/canadian-native.bbclass71
-rw-r--r--classes/canadian-sdk.bbclass102
-rw-r--r--classes/canadian.bbclass29
-rw-r--r--classes/chicken.bbclass11
-rw-r--r--classes/clean.bbclass53
-rw-r--r--classes/cmake.bbclass46
-rw-r--r--classes/concatenated-image.bbclass38
-rw-r--r--classes/corecdp-mirrors.bbclass4
-rw-r--r--classes/cpan-base.bbclass53
-rw-r--r--classes/cpan.bbclass69
-rw-r--r--classes/cpan_build.bbclass50
-rw-r--r--classes/cross-canadian.bbclass46
-rw-r--r--classes/cross.bbclass38
-rw-r--r--classes/crosssdk.bbclass15
-rw-r--r--classes/debian.bbclass24
-rw-r--r--classes/devshell.bbclass13
-rw-r--r--classes/dietlibc.bbclass30
-rw-r--r--classes/distutils-base.bbclass11
-rw-r--r--classes/distutils-common-base.bbclass30
-rw-r--r--classes/distutils-native-base.bbclass3
-rw-r--r--classes/distutils.bbclass67
-rw-r--r--classes/dsmg600-image.bbclass19
-rw-r--r--classes/e.bbclass41
-rw-r--r--classes/efl.bbclass91
-rw-r--r--classes/failure-cleanup.bbclass18
-rw-r--r--classes/fso-plugin.bbclass4
-rw-r--r--classes/gconf.bbclass13
-rw-r--r--classes/gettext.bbclass2
-rw-r--r--classes/gitver.bbclass64
-rw-r--r--classes/glibc-package.bbclass305
-rw-r--r--classes/glx-use-tls.bbclass7
-rw-r--r--classes/gnome.bbclass18
-rw-r--r--classes/gpephone.bbclass7
-rw-r--r--classes/gtk-binver.bbclass2
-rw-r--r--classes/gtk-doc.bbclass4
-rw-r--r--classes/gtk-icon-cache.bbclass32
-rw-r--r--classes/icecc.bbclass185
-rw-r--r--classes/image.bbclass280
-rw-r--r--classes/image_ipk.bbclass99
-rw-r--r--classes/insane.bbclass483
-rw-r--r--classes/java-library.bbclass70
-rw-r--r--classes/java-native.bbclass11
-rw-r--r--classes/java.bbclass195
-rw-r--r--classes/kernel-arch.bbclass29
-rw-r--r--classes/kernel.bbclass314
-rw-r--r--classes/lib_package.bbclass7
-rw-r--r--classes/linux-kernel-base.bbclass10
-rw-r--r--classes/lockdown.bbclass41
-rw-r--r--classes/magicbox-image.bbclass37
-rw-r--r--classes/manifest.bbclass2
-rw-r--r--classes/meta.bbclass4
-rw-r--r--classes/mime.bbclass56
-rw-r--r--classes/module-base.bbclass8
-rw-r--r--classes/module.bbclass35
-rw-r--r--classes/module_strip.bbclass32
-rw-r--r--classes/mono.bbclass174
-rw-r--r--classes/mozilla.bbclass12
-rw-r--r--classes/multimachine.bbclass29
-rw-r--r--classes/n2100-image.bbclass32
-rw-r--r--classes/nas100d-image.bbclass19
-rw-r--r--classes/native.bbclass121
-rw-r--r--classes/nativesdk.bbclass78
-rw-r--r--classes/nslu2-image.bbclass23
-rw-r--r--classes/nslu2-jffs2-image.bbclass18
-rw-r--r--classes/nslu2-mirrors.bbclass4
-rw-r--r--classes/nslu2-ramdisk-image.bbclass18
-rw-r--r--classes/nylon-image.bbclass8
-rw-r--r--classes/nylon-mirrors.bbclass8
-rw-r--r--classes/oestats-client.bbclass202
-rw-r--r--classes/openmoko-base.bbclass19
-rw-r--r--classes/openmoko-panel-plugin.bbclass6
-rw-r--r--classes/openmoko.bbclass3
-rw-r--r--classes/openmoko2.bbclass31
-rw-r--r--classes/opie.bbclass17
-rw-r--r--classes/opie_i18n.bbclass20
-rw-r--r--classes/oplinux-mirrors.bbclass14
-rw-r--r--classes/own-mirrors.bbclass4
-rw-r--r--classes/package.bbclass848
-rw-r--r--classes/package_dbg.bbclass125
-rw-r--r--classes/package_deb.bbclass276
-rw-r--r--classes/package_ipk.bbclass196
-rw-r--r--classes/package_rpm.bbclass166
-rw-r--r--classes/package_tar.bbclass42
-rw-r--r--classes/packaged-staging.bbclass595
-rw-r--r--classes/packagedata.bbclass73
-rw-r--r--classes/packagehistory.bbclass97
-rw-r--r--classes/palmtop.bbclass8
-rw-r--r--classes/patch.bbclass167
-rw-r--r--classes/pkgconfig.bbclass32
-rw-r--r--classes/qemu.bbclass15
-rw-r--r--classes/qmake-base.bbclass44
-rw-r--r--classes/qmake.bbclass66
-rw-r--r--classes/qmake2.bbclass23
-rw-r--r--classes/qmake_base.bbclass91
-rw-r--r--classes/qpf.bbclass36
-rw-r--r--classes/qt3e.bbclass6
-rw-r--r--classes/qt3x11.bbclass8
-rw-r--r--classes/qt4e.bbclass17
-rw-r--r--classes/qt4x11.bbclass23
-rw-r--r--classes/recipe_sanity.bbclass179
-rw-r--r--classes/rm_work.bbclass40
-rw-r--r--classes/rootfs_deb.bbclass162
-rw-r--r--classes/rootfs_ipk.bbclass195
-rw-r--r--classes/rootfs_rpm.bbclass210
-rw-r--r--classes/rpm_core.bbclass16
-rw-r--r--classes/sanity.bbclass116
-rw-r--r--classes/scons.bbclass13
-rw-r--r--classes/scratchbox-compat.bbclass13
-rw-r--r--classes/sdk.bbclass52
-rw-r--r--classes/sdl.bbclass38
-rw-r--r--classes/seppuku.bbclass395
-rw-r--r--classes/setuptools.bbclass8
-rw-r--r--classes/singlemachine.bbclass12
-rw-r--r--classes/sip.bbclass16
-rw-r--r--classes/sip3.bbclass60
-rw-r--r--classes/sip4.bbclass58
-rw-r--r--classes/siteinfo.bbclass77
-rw-r--r--classes/sourcepkg.bbclass15
-rw-r--r--classes/src_distribute.bbclass74
-rw-r--r--classes/src_distribute_local.bbclass58
-rw-r--r--classes/srctree.bbclass115
-rw-r--r--classes/storcenter-image.bbclass30
-rw-r--r--classes/task-metadata-track.bbclass96
-rw-r--r--classes/task.bbclass27
-rw-r--r--classes/testlab.bbclass65
-rw-r--r--classes/tinderclient.bbclass38
-rw-r--r--classes/tmake.bbclass2
-rw-r--r--classes/turbostation-image.bbclass32
-rw-r--r--classes/update-alternatives.bbclass1
-rw-r--r--classes/update-rc.d.bbclass40
-rw-r--r--classes/vala.bbclass14
-rw-r--r--classes/wrt-image.bbclass2