diff options
author | Jack Humbert <jack.humb@gmail.com> | 2017-07-13 14:24:26 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-13 14:24:26 -0400 |
commit | 6ed8ce4f598f838b971aa290a499f852827e1b58 (patch) | |
tree | 088e5e6d1d0d448f0e5c4032a830c27b33a126ab /util | |
parent | 087af43dee545792f486069481460ed5997bc41b (diff) | |
parent | b7d8dec7dccc9bc6b458e26a8d12fcdb4d73cdeb (diff) |
Merge pull request #1491 from fredizzimo/msys2
Add support for msys2 build environment
Diffstat (limited to 'util')
-rw-r--r-- | util/activate_msys2.sh | 16 | ||||
-rw-r--r-- | util/msys2_install.sh | 117 | ||||
-rw-r--r-- | util/win_shared_install.sh | 80 | ||||
-rw-r--r-- | util/wsl_install.sh | 94 |
4 files changed, 229 insertions, 78 deletions
diff --git a/util/activate_msys2.sh b/util/activate_msys2.sh new file mode 100644 index 0000000000..bb0485302e --- /dev/null +++ b/util/activate_msys2.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +function export_variables { + local util_dir=~/qmk_utils + export PATH=$PATH:$util_dir/dfu-programmer + export PATH=$PATH:$util_dir/dfu-util-0.9-win64 + export PATH=$PATH:$util_dir/flip/bin + export PATH=$PATH:$util_dir/avr8-gnu-toolchain/bin + export PATH=$PATH:$util_dir/gcc-arm-none-eabi/bin +} + +export_variables + + + + diff --git a/util/msys2_install.sh b/util/msys2_install.sh new file mode 100644 index 0000000000..de03b89ac4 --- /dev/null +++ b/util/msys2_install.sh @@ -0,0 +1,117 @@ +#!/bin/bash + +dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) +download_dir=~/qmk_utils +avrtools=avr8-gnu-toolchain +armtools=gcc-arm-none-eabi +installflip=false + +echo "Installing dependencies needed for the installation (quazip)" +pacman --needed -S msys/unzip msys/p7zip base-devel msys/git mingw-w64-x86_64-toolchain + +source "$dir/win_shared_install.sh" + +function install_avr { + rm -f -r "$avrtools" + wget "http://www.atmel.com/images/avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe" + 7z x avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe + rm avr8-gnu-toolchain-installer-3.5.4.91-win32.any.x86.exe +} + +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 +} + +function extract_flip { + rm -f -r flip + 7z -oflip x FlipInstaller.exe +} + +pushd "$download_dir" + +if [ -f "FlipInstaller.exe" ]; then + echo + echo "Extracting flip" + extract_flip +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 +else + while true; do + echo + echo "The AVR toolchain is already installed" + read -p "Do you want to reinstall? (Y/N) " res + case $res in + [Yy]* ) install_avr; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac + done +fi + +if [ ! -d "$armtools" ]; then + while true; do + echo + echo "The ARM toolchain is not installed." + echo "This is needed for building ARM based keboards." + 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 + while true; do + echo + echo "The ARM toolchain is already installed" + read -p "Do you want to reinstall? (Y/N) " res + case $res in + [Yy]* ) install_arm; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac + done +fi +popd + +cp -f "$dir/activate_msys2.sh" "$download_dir/" + +if grep "^source ~/qmk_utils/activate_msys2.sh$" ~/.bashrc +then + echo + 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 +fi + +echo +echo "******************************************************************************" +echo "Installation completed!" +echo "Please close this Window and restart MSYS2 MinGW" +echo "******************************************************************************"
\ No newline at end of file diff --git a/util/win_shared_install.sh b/util/win_shared_install.sh new file mode 100644 index 0000000000..8d1949ae9f --- /dev/null +++ b/util/win_shared_install.sh @@ -0,0 +1,80 @@ +#!/bin/bash + +function install_utils { + rm -f -r "$download_dir" + mkdir "$download_dir" + + pushd "$download_dir" + + echo "Installing dfu-programmer" + wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' + unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip + + echo "Installing dfu-util" + wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' + unzip dfu-util-0.9-win64.zip + + echo "Installing teensy_loader_cli" + wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' + unzip teensy_loader_cli_windows.zip + + echo "Installing Atmel Flip" + wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' + mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe + + echo "Downloading the QMK driver installer" + wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - + + rm -f *.zip + + popd > /dev/null +} + +function install_drivers { + pushd "$download_dir" + cp -f "$dir/drivers.txt" . + echo + cmd.exe /c "qmk_driver_installer.exe $1 $2 drivers.txt" + popd > /dev/null +} + +pushd "$dir" + +if [ ! -d "$download_dir" ]; then + install_utils +else + while true; do + echo + echo "The utils seem to already be downloaded." + read -p "Do you want to re-download them and update to the newest version (Y/N) " res + case $res in + [Yy]* ) install_utils; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac + done +fi + +while true; do + echo + echo "Which USB drivers do you want to install?" + echo "(A)all - All supported drivers will be installed" + echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode)" + echo " will be installed" + echo "(F)force - Like all, but will also override existing drivers for connected" + echo " keyboards" + echo "(N)one - No drivers will be installed," + echo " flashing your keyboard will most likely not work" + read -p "(A/C/F/N)? " res + case $res in + [Aa]* ) install_drivers --all; break;; + [Cc]* ) install_drivers; break;; + [Ff]* ) install_drivers --all --force; break;; + [Nn]* ) break;; + * ) echo "Invalid answer";; + esac +done + + +popd > /dev/null + diff --git a/util/wsl_install.sh b/util/wsl_install.sh index 8999da8a46..1574803534 100644 --- a/util/wsl_install.sh +++ b/util/wsl_install.sh @@ -1,44 +1,7 @@ #!/bin/bash -download_dir=wsl_downloaded - -function install_utils { - rm -f -r $download_dir - mkdir $download_dir - - pushd $download_dir - - echo "Installing dfu-programmer" - wget 'http://downloads.sourceforge.net/project/dfu-programmer/dfu-programmer/0.7.2/dfu-programmer-win-0.7.2.zip' - unzip -d dfu-programmer dfu-programmer-win-0.7.2.zip - - echo "Installing dfu-util" - wget 'http://dfu-util.sourceforge.net/releases/dfu-util-0.9-win64.zip' - unzip dfu-util-0.9-win64.zip - - echo "Installing teensy_loader_cli" - wget 'https://www.pjrc.com/teensy/teensy_loader_cli_windows.zip' - unzip teensy_loader_cli_windows.zip - - echo "Installing Atmel Flip" - wget 'http://www.atmel.com/images/Flip%20Installer%20-%203.4.7.112.exe' - mv Flip\ Installer\ \-\ 3.4.7.112.exe FlipInstaller.exe - - echo "Downloading the QMK driver installer" - wget -qO- https://api.github.com/repos/qmk/qmk_driver_installer/releases | grep browser_download_url | head -n 1 | cut -d '"' -f 4 | wget -i - - - rm -f *.zip - - popd > /dev/null -} - -function install_drivers { - pushd $download_dir - cmd.exe /C qmk_driver_installer.exe $1 $2 ../drivers.txt - popd > /dev/null -} - dir=$(cd -P -- "$(dirname -- "$0")" && pwd -P) +pushd "$dir"; if [[ $dir != /mnt/* ]]; then @@ -48,7 +11,6 @@ then exit 1 fi -pushd "$dir" while true; do echo @@ -67,49 +29,25 @@ echo "Installing dependencies needed for the installation (unzip, wget)" echo "This will ask for the sudo password" sudo apt-get install unzip wget +download_dir=wsl_downloaded -if [ ! -d "$download_dir" ]; then - install_utils -else - while true; do - echo - read -p "The utils seem to already be downloaded, do you want to re-download them and update to the newest version (Y/N) " res - case $res in - [Yy]* ) install_utils; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac - done -fi +source "$dir/win_shared_install.sh" +pushd "$download_dir" while true; do echo - read -p "Flip need to be installed if you want to use that for programming, do you want to install it now? (Y/N) " res + echo "Flip need to be installed if you want to use that for programming." + echo "Please install it to the default location!" + read -p "Do you want to install it now? (Y/N) " res case $res in - [Yy]* ) cmd.exe /c $download_dir\\FlipInstaller.exe; break;; + [Yy]* ) cmd.exe /c FlipInstaller.exe; break;; [Nn]* ) break;; * ) echo "Invalid answer";; esac done +popd -while true; do - echo - echo "Which USB drivers do you want to install?" - echo "(A)all - All supported drivers will be installed" - echo "(C)onnected - Only drivers for connected keyboards (in bootloader/flashing mode) will be installed" - echo "(F)force - Like all, but will also override existing drivers for connected keyboards" - echo "(N)one - No drivers will be installed, flashing your keyboard will most likely not work" - read -p "(A/C/F/N)? " res - case $res in - [Aa]* ) install_drivers --all; break;; - [Cc]* ) install_drivers; break;; - [Ff]* ) install_drivers --all --force; break;; - [Nn]* ) break;; - * ) echo "Invalid answer";; - esac -done - echo echo "Creating a softlink to the utils directory as ~/qmk_utils." echo "This is needed so that the the make system can find all utils it need." @@ -124,9 +62,9 @@ then else while true; do echo - echo "Do you want to add 'source ~/qmk_utils/activate_wsl.sh' to the end of you .bashrc file?" - echo "Without this make won't find the needed utils, so if you don't want to do it automatically," - echo "then you have to do it manually." + echo "Do you want to add 'source ~/qmk_utils/activate_wsl.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_wsl.sh" >> ~/.bashrc; break;; @@ -138,9 +76,10 @@ fi while true; do echo - echo "Do you want to add a symlink to the QMK repository in your home directory for convenience?" - echo "This will create a folder 'qmk_firmware' in your home directory." - echo "In the future you can use this folder instead of the full path on your windows file system" + echo "Do you want to add a symlink to the QMK repository in your home directory for" + echo "convenience? This will create a folder 'qmk_firmware' in your home directory." + echo "In the future you can use this folder instead of the full path on your Windows" + echo "file system." read -p "(Y/N)? " res case $res in [Yy]* ) ln -sfn "$dir/.." ~/qmk_firmware; break;; @@ -156,4 +95,3 @@ echo "You need to open a new batch command prompt for all the utils to work prop echo "******************************************************************************" popd > /dev/null - |