diff options
95 files changed, 4143 insertions, 772 deletions
diff --git a/.travis.yml b/.travis.yml index e74744a967..792f2cd05d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,23 +2,28 @@ os: linux dist: trusty sudo: required language: c -compiler: avr-gcc branches: except: - /^.*-automated-build$/ + - /^[0-9]+\.[0-9]+\.[0-9]+/ env: global: - secure: vBTSL34BDPxDilKUuTXqU4CJ26Pv5hogD2nghatkxSQkI1/jbdnLj/DQdPUrMJFDIY6TK3AltsBx72MaMsLQ1JO/Ou24IeHINHXzUC1FlS9yQa48cpxnhX5kzXNyGs3oa0qaFbvnr7RgYRWtmD52n4bIZuSuW+xpBv05x2OCizdT2ZonH33nATaHGFasxROm4qYZ241VfzcUv766V6RVHgL4x9V08warugs+RENVkfzxxwhk3NmkrISabze0gSVJLHBPHxroZC6EUcf/ocobcuDrCwFqtEt90i7pNIAFUE7gZsN2uE75LmpzAWin21G7lLPcPL2k4FJVd8an1HiP2WmscJU6U89fOfMb2viObnKcCzebozBCmKGtHEuXZo9FcReOx49AnQSpmESJGs+q2dL/FApkTjQiyT4J6O5dJpoww0/r57Wx0cmmqjETKBb5rSgXM51Etk3wO09mvcPHsEwrT7qH8r9XWdyCDoEn7FCLX3/LYnf/D4SmZ633YPl5gv3v9XEwxR5+04akjgnvWDSNIaDbWBdxHNb7l4pMc+WR1bwCyMyA7KXj0RrftEGOrm9ZRLe6BkbT4cycA+j77nbPOMcyZChliV9pPQos+4TOJoTzcK2L8yWVoY409aDNVuAjdP6Yum0R2maBGl/etLmIMpJC35C5/lZ+dUNjJAM= matrix: - TARGET=all-keyboards AUTOGEN=true - TARGET=test AUTOGEN=false +before_install: + - wget http://www.atmel.com/images/avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz +install: + - tar -zxf avr8-gnu-toolchain-3.5.4.1709-linux.any.x86_64.tar.gz + - export PATH="$PATH:$TRAVIS_BUILD_DIR/avr8-gnu-toolchain-linux_x86_64/bin" +before_script: + - avr-gcc --version script: -- make $TARGET AUTOGEN=$AUTOGEN +- 'if [[ "$TRAVIS_COMMIT_MESSAGE" != *"[skip build]"* ]] ; then make $TARGET AUTOGEN=$AUTOGEN; fi' addons: apt: packages: - - avr-libc - - gcc-avr - dfu-programmer - pandoc - gcc-arm-none-eabi diff --git a/Dockerfile b/Dockerfile index c42bbeb32a..744ded8579 100644 --- a/Dockerfile +++ b/Dockerfile @@ -25,4 +25,5 @@ ENV subproject=ez ENV keymap=default VOLUME /qmk -WORKDIR /qmk
\ No newline at end of file +WORKDIR /qmk +CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap} @@ -16,10 +16,10 @@ ifdef SILENT endif # We need to make sure that silent is always turned off at the top level -# Otherwise the [OK], [ERROR] and [WARN] messags won't be displayed correctly +# Otherwise the [OK], [ERROR] and [WARN] messages won't be displayed correctly override SILENT := false -ON_ERROR := error_occured=1 +ON_ERROR := error_occurred=1 STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST)) ROOT_MAKEFILE := $(lastword $(MAKEFILE_LIST)) @@ -34,13 +34,13 @@ ABS_ROOT_DIR := $(dir $(ABS_ROOT_MAKEFILE)) STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) BUILD_DIR := $(ROOT_DIR)/.build TEST_DIR := $(BUILD_DIR)/test -ERROR_FILE := $(BUILD_DIR)/error_occured +ERROR_FILE := $(BUILD_DIR)/error_occurred MAKEFILE_INCLUDED=yes # Helper function to process the newt element of a space separated path # It works a bit like the traditional functional head tail -# so the CURRENT_PATH_ELEMENT will beome the new head +# so the CURRENT_PATH_ELEMENT will become the new head # and the PATH_ELEMENTS are the rest that are still unprocessed define NEXT_PATH_ELEMENT $$(eval CURRENT_PATH_ELEMENT := $$(firstword $$(PATH_ELEMENTS))) @@ -84,7 +84,7 @@ endif # Only consider folders with makefiles, to prevent errors in case there are extra folders KEYBOARDS := $(notdir $(patsubst %/Makefile,%,$(wildcard $(ROOT_DIR)/keyboards/*/Makefile))) -#Compability with the old make variables, anything you specify directly on the command line +#Compatibility with the old make variables, anything you specify directly on the command line # always overrides the detected folders ifdef keyboard KEYBOARD := $(keyboard) @@ -106,7 +106,7 @@ endif #$(info Keyboards: $(KEYBOARDS)) -# Set the default goal depening on where we are running make from +# Set the default goal depending on where we are running make from # this handles the case where you run make without any arguments .DEFAULT_GOAL := all ifneq ($(KEYMAP),) @@ -170,7 +170,7 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER3 endef # A recursive helper function for finding the longest match -# $1 The list to be checed +# $1 The list to be checked # It works by always removing the currently matched item from the list # and call itself recursively, until a match is found define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 @@ -180,7 +180,7 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 $$(eval $$(call TRY_TO_MATCH_RULE_FROM_LIST_HELPER3,$1)) # If a match is found in the current list, otherwise just return what we had before ifeq ($$(RULE_FOUND),true) - # Save the best match so far and call itself recursivel + # Save the best match so far and call itself recursively BEST_MATCH := $$(MATCHED_ITEM) BEST_MATCH_RULE := $$(RULE) RULE_FOUND := false @@ -337,7 +337,7 @@ define PARSE_SUBPROJECT $$(eval $$(call PARSE_ALL_KEYMAPS)) endif else - # As earlier mentione,d when allsb is specified, we call our self recursively + # As earlier mentioned when allsb is specified, we call our self recursively # for all of the subprojects $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS))) endif @@ -403,11 +403,11 @@ define BUILD printf "$$(MAKE_MSG)\n\n"; \ $$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \ if [ $$$$? -gt 0 ]; \ - then error_occured=1; \ + then error_occurred=1; \ fi; endef -# Just parse all the keymaps for a specifc keyboard +# Just parse all the keymaps for a specific keyboard define PARSE_ALL_KEYMAPS $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) endef @@ -428,7 +428,7 @@ define BUILD_TEST printf "$$(TEST_MSG)\n"; \ $$(TEST_EXECUTABLE); \ if [ $$$$? -gt 0 ]; \ - then error_occured=1; \ + then error_occurred=1; \ fi; \ printf "\n"; endif @@ -448,7 +448,7 @@ endef # Set the silent mode depending on if we are trying to compile multiple keyboards or not -# By default it's on in that case, but it can be overriden by specifying silent=false +# By default it's on in that case, but it can be overridden by specifying silent=false # from the command line define SET_SILENT_MODE ifdef SUB_IS_SILENT @@ -465,16 +465,16 @@ include $(ROOT_DIR)/message.mk # The empty line is important here, as it will force a new shell to be created for each command # Otherwise the command line will become too long with a lot of keyboards and keymaps define RUN_COMMAND -+error_occured=0;\ ++error_occurred=0;\ $(COMMAND_$(SILENT_MODE)_$(COMMAND))\ -if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi; +if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi; endef define RUN_TEST -+error_occured=0;\ ++error_occurred=0;\ $($(TEST)_COMMAND)\ -if [ $$error_occured -gt 0 ]; then echo $$error_occured > $(ERROR_FILE); fi; +if [ $$error_occurred -gt 0 ]; then echo $$error_occurred > $(ERROR_FILE); fi; endef @@ -487,7 +487,7 @@ $(SUBPROJECTS): %: %-allkm .PHONY: % %: # Check if we have the CMP tool installed - cmp --version >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; + cmp $(ROOT_DIR)/Makefile $(ROOT_DIR)/Makefile >/dev/null 2>&1; if [ $$? -gt 0 ]; then printf "$(MSG_NO_CMP)"; exit 1; fi; # Check if the submodules are dirty, and display a warning if they are ifndef SKIP_GIT git submodule status --recursive 2>/dev/null | \ @@ -514,7 +514,7 @@ endif .PHONY: all all: all-keyboards test-all -# Define some shortcuts, mostly for compability with the old syntax +# Define some shortcuts, mostly for compatibility with the old syntax .PHONY: all-keyboards all-keyboards: allkb-allsp-allkm @@ -537,4 +537,4 @@ BUILD_DATE := $(shell date +"%Y-%m-%d-%H:%M:%S") $(shell echo '#define QMK_VERSION "$(GIT_VERSION)"' > $(ROOT_DIR)/quantum/version.h) $(shell echo '#define QMK_BUILDDATE "$(BUILD_DATE)"' >> $(ROOT_DIR)/quantum/version.h) -include $(ROOT_DIR)/testlist.mk
\ No newline at end of file +include $(ROOT_DIR)/testlist.mk diff --git a/build_keyboard.mk b/build_keyboard.mk index ce505de126..b85557d4a9 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk @@ -221,7 +221,11 @@ OPT_DEFS += $(TMK_COMMON_DEFS) EXTRALDFLAGS += $(TMK_COMMON_LDFLAGS) ifeq ($(PLATFORM),AVR) +ifeq ($(strip $(PROTOCOL)), VUSB) + include $(TMK_PATH)/protocol/vusb.mk +else include $(TMK_PATH)/protocol/lufa.mk +endif include $(TMK_PATH)/avr.mk endif diff --git a/doc/BUILD_GUIDE.md b/doc/BUILD_GUIDE.md index 70a4e10fa5..1750191836 100644 --- a/doc/BUILD_GUIDE.md +++ b/doc/BUILD_GUIDE.md @@ -6,7 +6,7 @@ 1. If you have ever installed WinAVR, uninstall it. 2. Install [MHV AVR Tools](https://infernoembedded.com/sites/default/files/project/MHV_AVR_Tools_20131101.exe). Disable smatch, but **be sure to leave the option to add the tools to the PATH checked**. 3. Install [MinGW](https://sourceforge.net/projects/mingw/files/Installer/mingw-get-setup.exe/download). During installation, uncheck the option to install a graphical user interface. **DO NOT change the default installation folder.** The scripts depend on the default location. -4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/jackhumbert/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. +4. Clone this repository. [This link will download it as a zip file, which you'll need to extract.](https://github.com/qmk/qmk_firmware/archive/master.zip) Open the extracted folder in Windows Explorer. 5. Double-click on the 1-setup-path-win batch script to run it. You'll need to accept a User Account Control prompt. Press the spacebar to dismiss the success message in the command prompt that pops up. |