mirror of
https://github.com/ArduPilot/ardupilot
synced 2025-01-08 00:48:30 -04:00
a2d17b87c7
The realpath tool may be missing on a Ubuntu distro and we use it in sim_vehicle.sh. Make sure it's also installed as part of sitl packages. On Archlinux it's part of the coreutils package which is part of the base group. Therefore it's guaranteed to be available. Fix #2730.
101 lines
2.5 KiB
Bash
Executable File
101 lines
2.5 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
CWD=$(pwd)
|
|
OPT="/opt"
|
|
|
|
BASE_PKGS="gawk make git arduino-core curl"
|
|
SITL_PKGS="g++ python-pip python-matplotlib python-serial python-wxgtk2.8 python-scipy python-opencv python-numpy python-pyparsing ccache realpath"
|
|
AVR_PKGS="gcc-avr binutils-avr avr-libc"
|
|
PYTHON_PKGS="pymavlink MAVProxy droneapi"
|
|
PX4_PKGS="python-serial python-argparse openocd flex bison libncurses5-dev \
|
|
autoconf texinfo build-essential libftdi-dev libtool zlib1g-dev \
|
|
zip genromfs"
|
|
BEBOP_PKGS="g++-arm-linux-gnueabihf"
|
|
UBUNTU64_PKGS="libc6:i386 libgcc1:i386 gcc-4.6-base:i386 libstdc++5:i386 libstdc++6:i386"
|
|
ASSUME_YES=false
|
|
|
|
# GNU Tools for ARM Embedded Processors
|
|
# (see https://launchpad.net/gcc-arm-embedded/)
|
|
ARM_ROOT="gcc-arm-none-eabi-4_7-2014q2"
|
|
ARM_TARBALL="$ARM_ROOT-20140408-linux.tar.bz2"
|
|
ARM_TARBALL_URL="http://firmware.diydrones.com/Tools/PX4-tools/$ARM_TARBALL"
|
|
|
|
# Ardupilot Tools
|
|
ARDUPILOT_TOOLS="ardupilot/Tools/autotest"
|
|
|
|
function maybe_prompt_user() {
|
|
if $ASSUME_YES; then
|
|
return 0
|
|
else
|
|
read -p "$1"
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
return 0
|
|
else
|
|
return 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
|
|
OPTIND=1 # Reset in case getopts has been used previously in the shell.
|
|
while getopts "y" opt; do
|
|
case "$opt" in
|
|
\?)
|
|
exit 1
|
|
;;
|
|
y) ASSUME_YES=true
|
|
;;
|
|
esac
|
|
done
|
|
|
|
if $ASSUME_YES; then
|
|
APT_GET="sudo apt-get -qq --assume-yes"
|
|
else
|
|
APT_GET="sudo apt-get"
|
|
fi
|
|
|
|
sudo usermod -a -G dialout $USER
|
|
|
|
$APT_GET remove modemmanager
|
|
$APT_GET update
|
|
$APT_GET install $BASE_PKGS $SITL_PKGS $PX4_PKGS $BEBOP_PKGS $UBUNTU64_PKGS $AVR_PKGS
|
|
sudo pip2 -q install $PYTHON_PKGS
|
|
|
|
if [ ! -d $OPT/$ARM_ROOT ]; then
|
|
(
|
|
cd $OPT;
|
|
sudo wget $ARM_TARBALL_URL;
|
|
sudo tar xjf ${ARM_TARBALL};
|
|
sudo rm ${ARM_TARBALL};
|
|
)
|
|
fi
|
|
|
|
exportline="export PATH=$OPT/$ARM_ROOT/bin:\$PATH";
|
|
if ! grep -Fxq "$exportline" ~/.profile ; then
|
|
if maybe_prompt_user "Add $OPT/$ARM_ROOT/bin to your PATH [Y/n]?" ; then
|
|
echo $exportline >> ~/.profile
|
|
$exportline
|
|
else
|
|
echo "Skipping adding $OPT/$ARM_ROOT/bin to PATH."
|
|
fi
|
|
fi
|
|
|
|
exportline2="export PATH=$CWD/$ARDUPILOT_TOOLS:\$PATH";
|
|
if ! grep -Fxq "$exportline2" ~/.profile ; then
|
|
if maybe_prompt_user "Add $CWD/$ARDUPILOT_TOOLS to your PATH [Y/n]?" ; then
|
|
echo $exportline2 >> ~/.profile
|
|
$exportline2
|
|
else
|
|
echo "Skipping adding $CWD/$ARDUPILOT_TOOLS to PATH."
|
|
fi
|
|
fi
|
|
|
|
apt-cache search arm-none-eabi
|
|
|
|
(
|
|
cd ardupilot
|
|
git submodule init
|
|
git submodule update
|
|
)
|