Skip to content

Commit

Permalink
Improve and streamline MSYS2 installation (qmk#7232)
Browse files Browse the repository at this point in the history
* Make MSYS force install

* Cleanup msys script

* Update to gcc 8.3 for arm and avr

And cleanup install scripts for both

* Fix path and scripts

* Fix links

* No confirmation for msys

* Tweak arm function since file structure changed

* Fix spacing and wording

Co-Authored-By: fauxpark <[email protected]>

* Only use MSYS2's make binary

Co-Authored-By: fauxpark <[email protected]>

* Some wordsmithing

Co-Authored-By: Mikkel Jeppesen <[email protected]>

* Add "disable download timeout" for download issues in MSYS

Co-Authored-By: Mikkel Jeppesen <[email protected]>

* Clean up URL for arm gcc download

Co-Authored-By: Joel Challis <[email protected]>

* add pip

Co-Authored-By: fauxpark <[email protected]>
  • Loading branch information
drashna and fauxpark committed Nov 22, 2019
1 parent 6cf5743 commit 66d4734
Showing 1 changed file with 23 additions and 43 deletions.
66 changes: 23 additions & 43 deletions util/msys2_install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,25 +8,27 @@ installflip=false
util_dir=$(dirname "$0")

echo "Installing dependencies needed for the installation (quazip)"
pacman --needed -S base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang msys/git msys/p7zip msys/python3 msys/unzip
pacman --needed --noconfirm --disable-download-timeout -Sy base-devel mingw-w64-x86_64-toolchain mingw-w64-x86_64-clang msys/git msys/p7zip mingw-w64-x86_64-python3-pip msys/unzip

source "$dir/win_shared_install.sh"

function install_avr {
rm -f -r "$avrtools"
wget "http://ww1.microchip.com/downloads/en/DeviceDoc/avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip"
wget "https://blog.zakkemble.net/download/avr-gcc-8.3.0-x86-mingw.zip"
echo "Extracting AVR toolchain..."
unzip -q avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip
mv avr8-gnu-toolchain-win32_x86/ avr8-gnu-toolchain
rm __MACOSX -R
rm avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip
pacman --needed -S mingw-w64-x86_64-avrdude
unzip -q -d . avr-gcc-8.3.0-x86-mingw.zip
mv avr-gcc-8.3.0-x86-mingw avr8-gnu-toolchain
rm avr8-gnu-toolchain/bin/make.exe
rm avr-gcc-8.3.0-x86-mingw.zip
pacman --needed --disable-download-timeout -S mingw-w64-x86_64-avrdude
}

function install_arm {
wget -O gcc-arm-none-eabi.zip "https://developer.arm.com/-/media/Files/downloads/gnu-rm/6-2017q2/gcc-arm-none-eabi-6-2017-q2-update-win32.zip?product=GNU%20ARM%20Embedded%20Toolchain,ZIP,,Windows,6-2017-q2-update"
unzip -d gcc-arm-none-eabi gcc-arm-none-eabi.zip
rm gcc-arm-none-eabi.zip
rm -f -r "$armtools"
wget -O gcc-arm-none-eabi-8-2019-q3-update-win32.zip "https://developer.arm.com/-/media/Files/downloads/gnu-rm/8-2019q3/RC1.1/gcc-arm-none-eabi-8-2019-q3-update-win32.zip"
echo "Extracting ARM toolchain..."
unzip -q -d gcc-arm-none-eabi gcc-arm-none-eabi-8-2019-q3-update-win32.zip
rm gcc-arm-none-eabi-8-2019-q3-update-win32.zip
}

function extract_flip {
Expand All @@ -43,17 +45,10 @@ if [ -f "FlipInstaller.exe" ]; then
fi

if [ ! -d "$avrtools" ]; then
while true; do
echo
echo "The AVR toolchain is not installed."
echo "This is needed for building AVR based keboards."
read -p "Do you want to install it? (Y/N) " res
case $res in
[Yy]* ) install_avr; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
echo
echo "The AVR toolchain is not installed."
echo "This is needed for building AVR based keyboards."
install_avr
else
while true; do
echo
Expand All @@ -68,17 +63,10 @@ else
fi

if [ ! -d "$armtools" ]; then
while true; do
echo
echo "The ARM toolchain is not installed."
echo "This is needed for building ARM based keyboards."
read -p "Do you want to install it? (Y/N) " res
case $res in
[Yy]* ) install_arm; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
echo
echo "The ARM toolchain is not installed."
echo "This is needed for building ARM based keyboards."
install_arm
else
while true; do
echo
Expand All @@ -103,18 +91,10 @@ then
echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc"
echo "Not adding it twice!"
else
while true; do
echo
echo "Do you want to add 'source ~/qmk_utils/activate_msys2.sh' to the end of your"
echo ".bashrc file? Without this make won't find the needed utils, so if you don't"
echo "want to do it automatically, then you have to do it manually later."
read -p "(Y/N)? " res
case $res in
[Yy]* ) echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc; break;;
[Nn]* ) break;;
* ) echo "Invalid answer";;
esac
done
echo "Adding 'source ~/qmk_utils/activate_msys2.sh' to the end of your"
echo ".bashrc file. Without this make won't find the needed utils."
echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc;
fi

echo
Expand Down

0 comments on commit 66d4734

Please sign in to comment.