msys2_install.sh 3.6 KB

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