Improve and streamline MSYS2 installation (#7232)

* 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 <fauxpark@gmail.com>

* Only use MSYS2's make binary

Co-Authored-By: fauxpark <fauxpark@gmail.com>

* Some wordsmithing

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

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

Co-Authored-By: Mikkel Jeppesen <2756925+Duckle29@users.noreply.github.com>

* Clean up URL for arm gcc download

Co-Authored-By: Joel Challis <git@zvecr.com>

* add pip

Co-Authored-By: fauxpark <fauxpark@gmail.com>
This commit is contained in:
Drashna Jaelre 2019-11-21 23:09:02 -08:00 committed by fauxpark
parent 6cf574396a
commit 66d4734371
1 changed files with 23 additions and 43 deletions

View File

@ -8,25 +8,27 @@ installflip=false
util_dir=$(dirname "$0") util_dir=$(dirname "$0")
echo "Installing dependencies needed for the installation (quazip)" 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" source "$dir/win_shared_install.sh"
function install_avr { function install_avr {
rm -f -r "$avrtools" 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..." echo "Extracting AVR toolchain..."
unzip -q avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip unzip -q -d . avr-gcc-8.3.0-x86-mingw.zip
mv avr8-gnu-toolchain-win32_x86/ avr8-gnu-toolchain mv avr-gcc-8.3.0-x86-mingw avr8-gnu-toolchain
rm __MACOSX -R rm avr8-gnu-toolchain/bin/make.exe
rm avr8-gnu-toolchain-3.6.1.1752-win32.any.x86.zip rm avr-gcc-8.3.0-x86-mingw.zip
pacman --needed -S mingw-w64-x86_64-avrdude pacman --needed --disable-download-timeout -S mingw-w64-x86_64-avrdude
} }
function install_arm { 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" rm -f -r "$armtools"
unzip -d gcc-arm-none-eabi gcc-arm-none-eabi.zip 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"
rm gcc-arm-none-eabi.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 { function extract_flip {
@ -43,17 +45,10 @@ if [ -f "FlipInstaller.exe" ]; then
fi fi
if [ ! -d "$avrtools" ]; then if [ ! -d "$avrtools" ]; then
while true; do echo
echo echo "The AVR toolchain is not installed."
echo "The AVR toolchain is not installed." echo "This is needed for building AVR based keyboards."
echo "This is needed for building AVR based keboards." install_avr
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
else else
while true; do while true; do
echo echo
@ -68,17 +63,10 @@ else
fi fi
if [ ! -d "$armtools" ]; then if [ ! -d "$armtools" ]; then
while true; do echo
echo echo "The ARM toolchain is not installed."
echo "The ARM toolchain is not installed." echo "This is needed for building ARM based keyboards."
echo "This is needed for building ARM based keyboards." install_arm
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
else else
while true; do while true; do
echo echo
@ -103,18 +91,10 @@ then
echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc" echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc"
echo "Not adding it twice!" echo "Not adding it twice!"
else else
while true; do
echo echo
echo "Do you want to add 'source ~/qmk_utils/activate_msys2.sh' to the end of your" 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, so if you don't" echo ".bashrc file. Without this make won't find the needed utils."
echo "want to do it automatically, then you have to do it manually later." echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc;
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
fi fi
echo echo