Files
tubestation/testing/taskcluster/scripts/builder/sm-tooltool-config.sh

62 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
set -xe
: ${TOOLTOOL_SERVER:=https://api.pub.build.mozilla.org/tooltool/}
: ${TOOLTOOL_REPO:=https://git.mozilla.org/build/tooltool.git}
: ${TOOLTOOL_REV:=master}
: ${SPIDERMONKEY_VARIANT:=plain}
: ${UPLOAD_DIR:=$HOME/artifacts/}
: ${WORK:=$HOME/workspace}
: ${SRCDIR:=$WORK/build/src}
mkdir -p $WORK
cd $WORK
# Need to install things from tooltool. Figure out what platform to use.
case $(uname -m) in
i686 | arm )
BITS=32
;;
*)
BITS=64
;;
esac
case "$OSTYPE" in
darwin*)
PLATFORM_OS=macosx
;;
linux-gnu)
PLATFORM_OS=linux
;;
msys)
PLATFORM_OS=win
;;
*)
echo "Unrecognized OSTYPE '$OSTYPE'" >&2
PLATFORM_OS=linux
;;
esac
# Install everything needed for the browser on this platform. Not all of it is
# necessary for the JS shell, but it's less duplication to share tooltool
# manifests.
BROWSER_PLATFORM=$PLATFORM_OS$BITS
TOOLTOOL_MANIFEST="$SRCDIR/browser/config/tooltool-manifests/$BROWSER_PLATFORM/releng.manifest"
tc-vcs checkout $WORK/tooltool $TOOLTOOL_REPO $TOOLTOOL_REPO $TOOLTOOL_REV
(cd $WORK && python tooltool/tooltool.py --url $TOOLTOOL_SERVER -m $TOOLTOOL_MANIFEST fetch ${TOOLTOOL_CACHE:+ -c $TOOLTOOL_CACHE})
# Point to the appropriate compiler, assuming taskcluster will one day run on non-Linux OSes.
case "$PLATFORM_OS" in
linux)
export PATH="$WORK/gcc/bin":$PATH
export GCCDIR="$WORK/gcc"
;;
macosx)
export PATH="$WORK/clang/bin":$PATH
;;
esac