diff options
Diffstat (limited to 'util/msys2_install.sh')
| -rw-r--r-- | util/msys2_install.sh | 117 |
1 files changed, 117 insertions, 0 deletions
diff --git a/util/msys2_install.sh b/util/msys2_install.sh new file mode 100644 index 000000000..de03b89ac --- /dev/null +++ b/util/msys2_install.sh | |||
| @@ -0,0 +1,117 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | |||
| 3 | dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) | ||
| 4 | download_dir=~/qmk_utils | ||
| 5 | avrtools=avr8-gnu-toolchain | ||
| 6 | armtools=gcc-arm-none-eabi | ||
| 7 | installflip=false | ||
| 8 | |||
| 9 | echo "Installing dependencies needed for the installation (quazip)" | ||
| 10 | pacman --needed -S msys/unzip msys/p7zip base-devel msys/git mingw-w64-x86_64-toolchain | ||
| 11 | |||
| 12 | source "$dir/win_shared_install.sh" | ||
| 13 | |||
| 14 | function install_avr { | ||
| 15 | rm -f -r "$avrtools" | ||
| 16 | wget "http://www.atmel.com/images/avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe" | ||
| 17 | 7z x avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe | ||
| 18 | rm avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe | ||
| 19 | } | ||
| 20 | |||
| 21 | function install_arm { | ||
| 22 | 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" | ||
| 23 | unzip -d gcc-arm-none-eabi gcc-arm-none-eabi.zip | ||
| 24 | rm gcc-arm-none-eabi.zip | ||
| 25 | } | ||
| 26 | |||
| 27 | function extract_flip { | ||
| 28 | rm -f -r flip | ||
| 29 | 7z -oflip x FlipInstaller.exe | ||
| 30 | } | ||
| 31 | |||
| 32 | pushd "$download_dir" | ||
| 33 | |||
| 34 | if [ -f "FlipInstaller.exe" ]; then | ||
| 35 | echo | ||
| 36 | echo "Extracting flip" | ||
| 37 | extract_flip | ||
| 38 | fi | ||
| 39 | |||
| 40 | if [ ! -d "$avrtools" ]; then | ||
| 41 | while true; do | ||
| 42 | echo | ||
| 43 | echo "The AVR toolchain is not installed." | ||
| 44 | echo "This is needed for building AVR based keboards." | ||
| 45 | read -p "Do you want to install it? (Y/N) " res | ||
| 46 | case $res in | ||
| 47 | [Yy]* ) install_avr; break;; | ||
| 48 | [Nn]* ) break;; | ||
| 49 | * ) echo "Invalid answer";; | ||
| 50 | esac | ||
| 51 | done | ||
| 52 | else | ||
| 53 | while true; do | ||
| 54 | echo | ||
| 55 | echo "The AVR toolchain is already installed" | ||
| 56 | read -p "Do you want to reinstall? (Y/N) " res | ||
| 57 | case $res in | ||
| 58 | [Yy]* ) install_avr; break;; | ||
| 59 | [Nn]* ) break;; | ||
| 60 | * ) echo "Invalid answer";; | ||
| 61 | esac | ||
| 62 | done | ||
| 63 | fi | ||
| 64 | |||
| 65 | if [ ! -d "$armtools" ]; then | ||
| 66 | while true; do | ||
| 67 | echo | ||
| 68 | echo "The ARM toolchain is not installed." | ||
| 69 | echo "This is needed for building ARM based keboards." | ||
| 70 | read -p "Do you want to install it? (Y/N) " res | ||
| 71 | case $res in | ||
| 72 | [Yy]* ) install_arm; break;; | ||
| 73 | [Nn]* ) break;; | ||
| 74 | * ) echo "Invalid answer";; | ||
| 75 | esac | ||
| 76 | done | ||
| 77 | else | ||
| 78 | while true; do | ||
| 79 | echo | ||
| 80 | echo "The ARM toolchain is already installed" | ||
| 81 | read -p "Do you want to reinstall? (Y/N) " res | ||
| 82 | case $res in | ||
| 83 | [Yy]* ) install_arm; break;; | ||
| 84 | [Nn]* ) break;; | ||
| 85 | * ) echo "Invalid answer";; | ||
| 86 | esac | ||
| 87 | done | ||
| 88 | fi | ||
| 89 | popd | ||
| 90 | |||
| 91 | cp -f "$dir/activate_msys2.sh" "$download_dir/" | ||
| 92 | |||
| 93 | if grep "^source ~/qmk_utils/activate_msys2.sh$" ~/.bashrc | ||
| 94 | then | ||
| 95 | echo | ||
| 96 | echo "The line source ~/qmk_utils/activate_msys2.sh is already added to your /.bashrc" | ||
| 97 | echo "Not adding it twice!" | ||
| 98 | else | ||
| 99 | while true; do | ||
| 100 | echo | ||
| 101 | echo "Do you want to add 'source ~/qmk_utils/activate_msys2.sh' to the end of your" | ||
| 102 | echo ".bashrc file? Without this make won't find the needed utils, so if you don't" | ||
| 103 | echo "want to do it automatically, then you have to do it manually later." | ||
| 104 | read -p "(Y/N)? " res | ||
| 105 | case $res in | ||
| 106 | [Yy]* ) echo "source ~/qmk_utils/activate_msys2.sh" >> ~/.bashrc; break;; | ||
| 107 | [Nn]* ) break;; | ||
| 108 | * ) echo "Invalid answer";; | ||
| 109 | esac | ||
| 110 | done | ||
| 111 | fi | ||
| 112 | |||
| 113 | echo | ||
| 114 | echo "******************************************************************************" | ||
| 115 | echo "Installation completed!" | ||
| 116 | echo "Please close this Window and restart MSYS2 MinGW" | ||
| 117 | echo "******************************************************************************" \ No newline at end of file | ||
