aboutsummaryrefslogtreecommitdiffstats
path: root/util/install_dependencies.sh
diff options
context:
space:
mode:
authorGravatar fredizzimo <fsundvik@gmail.com>2016-07-02 00:22:09 +0300
committerGravatar Jack Humbert <jack.humb@gmail.com>2016-07-01 17:22:09 -0400
commitc30aba0bce989d29458bd3b56090400cb0a91d03 (patch)
tree2e45f59b758412341459372bcd7d7375e8a42e68 /util/install_dependencies.sh
parent4d4f7684e684bec319f166121463a88cd4a62703 (diff)
downloadqmk_firmware-c30aba0bce989d29458bd3b56090400cb0a91d03.tar.gz
Add ChibiOS packages to the avr_setup script (#468)
* Add ChibiOS packages to the avr_setup script * Add git as a dependency * Rename avr_setup.sh -> install_dependencies.sh Also fix the Vagrant welcome message to reflect the new directory structure.
Diffstat (limited to 'util/install_dependencies.sh')
-rw-r--r--util/install_dependencies.sh92
1 files changed, 92 insertions, 0 deletions
diff --git a/util/install_dependencies.sh b/util/install_dependencies.sh
new file mode 100644
index 000000000..24564a2ac
--- /dev/null
+++ b/util/install_dependencies.sh
@@ -0,0 +1,92 @@
+#!/usr/bin/env bash
+# This script will attempt to setup the Linux dependencies for compiling QMK/TMK
+
+# This could probably go much lower, but since we are including an Arch vagrant,
+# making it the first match makes sense
+
+if [[ -n "$(type -P pacman )" ]]; then
+ # Arch linux and derivatives like Apricity
+ # Future improvements:
+ # Allow user to speed up package installs using powerpill/wget tweaks
+ # Always run the pacman mirror update script if possible when vagrant comes up
+ # This will ensure that users never get stalled on a horribly slow mirror
+ pacman -Syyu --needed --noconfirm
+ pacman -S --needed --noconfirm \
+ base-devel \
+ avr-gcc \
+ avr-binutils \
+ avr-libc \
+ dfu-util \
+ arm-none-eabi-gcc \
+ arm-none-eabi-binutils \
+ arm-none-eabi-newlib \
+ git
+
+elif [[ -n "$(type -P apt-get)" ]]; then
+ # Debian and derivatives
+ # This block performs completely non-interactive updates {{
+ export DEBIAN_FRONTEND=noninteractive
+ export DEBCONF_NONINTERACTIVE_SEEN=true
+ echo "grub-pc hold" | dpkg --set-selections
+ apt-get -y update
+ apt-get -y --allow-unauthenticated upgrade \
+ -o Dpkg::Options::="--force-confdef" \
+ -o Dpkg::Options::="--force-confold"
+ # }}
+ apt-get install -y \
+ build-essential \
+ gcc \
+ unzip \
+ wget \
+ zip \
+ gcc-avr \
+ binutils-avr \
+ avr-libc \
+ dfu-programmer \
+ dfu-util \
+ gcc-arm-none-eabi \
+ binutils-arm-none-eabi \
+ libnewlib-arm-none-eabi \
+ git
+
+elif [[ -n "$(type -P yum)" ]]; then
+ # Fedora, CentOS or RHEL and derivatives
+ yum -y makecache && yum -y update
+ yum -y install \
+ gcc \
+ glibc-headers \
+ kernel-devel \
+ kernel-headers \
+ make \
+ perl \
+ git \
+ wget \
+ avr-binutils \
+ avr-gcc \
+ avr-libc \
+ dfu-programmer \
+ dfu-util \
+ gcc-arm-none-eabi \
+ binutils-arm-none-eabi \
+ libnewlib-arm-none-eabi \
+ git
+ # The listed eabi pacackes do unfortunately not exist for CentOS,
+ # But at least in Fedora they do, so try to install them anyway
+ # TODO: Build them from sources, if the installation fails
+
+elif [[ -n "$(type -P zypper)" ]]; then
+ # openSUSE
+ zypper --non-interactive refresh && zypper --non-interactive update
+ zypper --non-interactive install \
+ git \
+ make \
+ gcc \
+ kernel-devel \
+ patch \
+ wget \
+ dfu-programmer \
+ git
+ # TODO: The avr and eabi tools are not available as default packages, so we need
+ # another way to install them
+
+fi