summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--Vagrantfile45
-rw-r--r--avr_setup.sh23
3 files changed, 69 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index f3f46872a0..e6652999e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,3 +11,4 @@ tags
*~
build/
*.bak
+.vagrant/
diff --git a/Vagrantfile b/Vagrantfile
new file mode 100644
index 0000000000..e1082a08d0
--- /dev/null
+++ b/Vagrantfile
@@ -0,0 +1,45 @@
+# -*- mode: ruby -*-
+# vi: set ft=ruby :
+
+Vagrant.configure(2) do |config|
+ config.vm.box = "dragon788/arch-ala-elasticdog"
+
+ # This section allows you to customize the Virtualbox VM
+ # settings, ie showing the GUI or upping the memory
+ # or cores if desired
+ config.vm.provider "virtualbox" do |vb|
+ # Hide the VirtualBox GUI when booting the machine
+ vb.gui = false
+
+ # Customize the amount of memory on the VM:
+ vb.memory = "512"
+ end
+
+ # This section allows you to customize the VMware VM
+ # settings, ie showing the GUI or upping the memory
+ # or cores if desired
+ config.vm.provider "vmware" do |vmw|
+ # Hide the VMware GUI when booting the machine
+ vmw.gui = false
+
+ # Customize the amount of memory on the VM:
+ vmw.memory = "512"
+ end
+
+ # This ensures the system always gets the latest updates when powered on
+ # If this causes issues you can run a 'vagrant destroy' and then
+ # comment out these three lines and run 'vagrant up' to get a working
+ # non-updated box and then attempt to troubleshoot after it has started
+ #
+ config.vm.provision "shell", run: "always", inline: <<-SHELL
+ sudo pacman -Syu --needed --noconfirm
+ SHELL
+
+ # Allow user to speed up package installs using powerpill/wget tweaks
+ # Always run the pacman mirror update script if possible when vagrant comes up
+ # This will ensure that users never get stalled on a horribly slow mirror
+
+ config.vm.provision "shell", path: "avr_setup.sh"
+
+ config.vm.post_up_message = """Change directory to the keyboard you wish to program and modify your layout, then run 'make clean' and 'make' to compile the .eep and .hex files."""
+end
diff --git a/avr_setup.sh b/avr_setup.sh
new file mode 100644
index 0000000000..ff4153ba37
--- /dev/null
+++ b/avr_setup.sh
@@ -0,0 +1,23 @@
+#!/usr/bin/env bash
+# This script will attempt to setup the Linux dependencies for compiling QMK/TMK
+
+# This could probably go much lower, but since we are including an Arch vagrant,
+# making it the first match makes sense
+
+if [[ -n "$(type -P pacman )" ]]; then
+ # Arch linux and derivatives like Apricity
+ pacman -S --needed --noconfirm base-devel avr-gcc avr-binutils avr-libc dfu-utils
+
+elif [[ -n "$(type -P apt-get)" ]]; then
+ # Debian and derivatives
+ apt-get install -y build-essential gcc unzip wget zip gcc-avr binutils-avr avr-libc
+
+elif [[ -n "$(type -P yum)" ]]; then
+ # Fedora, CentOS or RHEL and derivatives
+ yum -y install gcc glibc-headers kernel-devel kernel-headers make perl git wget
+
+elif [[ -n "$(type -P zypper)" ]]; then
+ # openSUSE
+ zypper --non-interactive install git make gcc kernel-devel patch wget
+
+fi