mirror of
https://github.com/Keychron/qmk_firmware.git
synced 2024-12-29 12:48:52 +06:00
e1243339ca
It has been required for a while now, and now actually checked in the makefiles. Before, if you didn't have it installed it would just recompile everything. The readme hasn't been updated to reflect this, I think we need to go through that separately, and see what's really needed. Or just instruct people to run the batch scripts.
97 lines
2.5 KiB
Bash
97 lines
2.5 KiB
Bash
#!/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 \
|
|
diffutils
|
|
|
|
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 \
|
|
diffutils
|
|
|
|
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 \
|
|
diffutils
|
|
# 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 \
|
|
diffutils
|
|
# TODO: The avr and eabi tools are not available as default packages, so we need
|
|
# another way to install them
|
|
|
|
fi
|