ardupilot/Tools/scripts/configure-ci.sh

92 lines
2.6 KiB
Bash
Raw Normal View History

#!/bin/bash
# Install dependencies and configure the environment for CI build testing
2016-01-20 01:14:45 -04:00
set -ex
# Disable ccache for the configure phase, it's not worth it
export CCACHE_DISABLE="true"
ARM_ROOT="gcc-arm-none-eabi-4_9-2015q3"
ARM_TARBALL="$ARM_ROOT-20150921-linux.tar.bz2"
RPI_ROOT="master"
RPI_TARBALL="$RPI_ROOT.tar.gz"
CCACHE_ROOT="ccache-3.4.2"
2016-04-16 04:26:23 -03:00
CCACHE_TARBALL="$CCACHE_ROOT.tar.bz2"
mkdir -p $HOME/opt
2016-04-16 04:26:23 -03:00
pushd $HOME
# PX4 toolchain
2016-04-16 04:26:23 -03:00
dir=$ARM_ROOT
if [ ! -d "$HOME/opt/$dir" -o ! -x "$HOME/opt/$dir/bin/arm-none-eabi-g++" ]; then
2018-07-30 01:15:33 -03:00
wget http://firmware.ardupilot.org/Tools/STM32-tools/$ARM_TARBALL
2016-04-16 04:26:23 -03:00
tar -xf $ARM_TARBALL -C opt
fi
# RPi/BBB toolchain
2016-04-16 04:26:23 -03:00
dir="tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64"
if [ ! -d "$HOME/opt/$dir" -o ! -x "$HOME/opt/$dir/bin/arm-linux-gnueabihf-g++" ]; then
wget http://firmware.ardupilot.org/Tools/Travis/NavIO/$RPI_TARBALL
2016-04-16 04:26:23 -03:00
tar -xf $RPI_TARBALL -C opt $dir
fi
# ccache
2016-04-16 04:26:23 -03:00
dir=$CCACHE_ROOT
if [ ! -d "$HOME/opt/$dir" ]; then
# if version 3.4 isn't there, try to remove older v3.3 folders from CI cache
rm -rf "$HOME/opt"/ccache-3.3*
2016-04-16 04:26:23 -03:00
wget https://www.samba.org/ftp/ccache/$CCACHE_TARBALL
tar -xf $CCACHE_TARBALL
pushd $CCACHE_ROOT
./configure --prefix="/tmp" --bindir="$HOME/opt/$dir"
make
make install
popd
fi
popd
mkdir -p $HOME/bin
# symlink to compiler versions
ln -s /usr/bin/clang-7 ~/bin/clang
ln -s /usr/bin/clang++-7 ~/bin/clang++
ln -s /usr/bin/llvm-ar-7 ~/bin/llvm-ar
mkdir -p $HOME/ccache
# configure ccache
2016-04-16 04:26:23 -03:00
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/g++
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/gcc
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/arm-none-eabi-g++
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/arm-none-eabi-gcc
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/arm-linux-gnueabihf-g++
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/arm-linux-gnueabihf-gcc
2016-04-16 05:58:37 -03:00
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/clang++
ln -s ~/opt/$CCACHE_ROOT/ccache ~/ccache/clang
exportline="export PATH=$HOME/ccache"
exportline="${exportline}:$HOME/bin"
exportline="${exportline}:$HOME/.local/bin"
2016-03-08 20:55:21 -04:00
exportline="${exportline}:$HOME/opt/gcc-arm-none-eabi-4_9-2015q3/bin"
exportline="${exportline}:$HOME/opt/tools-master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin"
exportline="${exportline}:$HOME/opt/$CCACHE_ROOT"
exportline="${exportline}:\$PATH"
if grep -Fxq "$exportline" ~/.profile; then
echo nothing to do;
else
echo $exportline >> ~/.profile;
fi
. ~/.profile
2016-11-06 23:34:52 -04:00
pip install --user -U argparse empy pyserial pexpect future lxml
pip install --user -U mavproxy
2018-06-23 03:09:54 -03:00
pip install --user -U intelhex
pip install --user -U numpy
2019-07-18 17:32:15 -03:00
pip install --user -U edn_format