Merge branch 'master' of https://github.com/Johannes-Larsson/qmk_firmware
This commit is contained in:
		| @@ -25,4 +25,5 @@ ENV subproject=ez | |||||||
| ENV keymap=default | ENV keymap=default | ||||||
|  |  | ||||||
| VOLUME /qmk | VOLUME /qmk | ||||||
| WORKDIR /qmk | WORKDIR /qmk | ||||||
|  | CMD make clean ; make keyboard=${keyboard} subproject=${subproject} keymap=${keymap} | ||||||
|   | |||||||
							
								
								
									
										36
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								Makefile
									
									
									
									
									
								
							| @@ -16,10 +16,10 @@ ifdef SILENT | |||||||
| endif | endif | ||||||
|  |  | ||||||
| # We need to make sure that silent is always turned off at the top level | # 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 | override SILENT := false | ||||||
|  |  | ||||||
| ON_ERROR := error_occured=1 | ON_ERROR := error_occurred=1 | ||||||
|  |  | ||||||
| STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST)) | STARTING_MAKEFILE := $(firstword $(MAKEFILE_LIST)) | ||||||
| ROOT_MAKEFILE := $(lastword $(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)) | STARTING_DIR := $(subst $(ABS_ROOT_DIR),,$(ABS_STARTING_DIR)) | ||||||
| BUILD_DIR := $(ROOT_DIR)/.build | BUILD_DIR := $(ROOT_DIR)/.build | ||||||
| TEST_DIR := $(BUILD_DIR)/test | TEST_DIR := $(BUILD_DIR)/test | ||||||
| ERROR_FILE := $(BUILD_DIR)/error_occured | ERROR_FILE := $(BUILD_DIR)/error_occurred | ||||||
|  |  | ||||||
| MAKEFILE_INCLUDED=yes | MAKEFILE_INCLUDED=yes | ||||||
|  |  | ||||||
| # Helper function to process the newt element of a space separated path | # Helper function to process the newt element of a space separated path | ||||||
| # It works a bit like the traditional functional head tail | # 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 | # and the PATH_ELEMENTS are the rest that are still unprocessed | ||||||
| define NEXT_PATH_ELEMENT | define NEXT_PATH_ELEMENT | ||||||
|     $$(eval CURRENT_PATH_ELEMENT := $$(firstword  $$(PATH_ELEMENTS))) |     $$(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 | # Only consider folders with makefiles, to prevent errors in case there are extra folders | ||||||
| KEYBOARDS := $(notdir $(patsubst %/Makefile,%,$(wildcard $(ROOT_DIR)/keyboards/*/Makefile))) | 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 | # always overrides the detected folders | ||||||
| ifdef keyboard | ifdef keyboard | ||||||
|     KEYBOARD := $(keyboard) |     KEYBOARD := $(keyboard) | ||||||
| @@ -106,7 +106,7 @@ endif | |||||||
| #$(info Keyboards: $(KEYBOARDS)) | #$(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 | # this handles the case where you run make without any arguments | ||||||
| .DEFAULT_GOAL := all | .DEFAULT_GOAL := all | ||||||
| ifneq ($(KEYMAP),) | ifneq ($(KEYMAP),) | ||||||
| @@ -170,7 +170,7 @@ define TRY_TO_MATCH_RULE_FROM_LIST_HELPER3 | |||||||
| endef | endef | ||||||
|  |  | ||||||
| # A recursive helper function for finding the longest match | # 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 | # It works by always removing the currently matched item from the list | ||||||
| # and call itself recursively, until a match is found | # and call itself recursively, until a match is found | ||||||
| define TRY_TO_MATCH_RULE_FROM_LIST_HELPER2 | 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)) |         $$(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 |         # If a match is found in the current list, otherwise just return what we had before | ||||||
|         ifeq ($$(RULE_FOUND),true) |         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 := $$(MATCHED_ITEM) | ||||||
|             BEST_MATCH_RULE := $$(RULE) |             BEST_MATCH_RULE := $$(RULE) | ||||||
|             RULE_FOUND := false |             RULE_FOUND := false | ||||||
| @@ -337,7 +337,7 @@ define PARSE_SUBPROJECT | |||||||
|             $$(eval $$(call PARSE_ALL_KEYMAPS)) |             $$(eval $$(call PARSE_ALL_KEYMAPS)) | ||||||
|         endif |         endif | ||||||
|     else |     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 |         # for all of the subprojects | ||||||
|         $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS))) |         $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_SUBPROJECT,$(SUBPROJECTS))) | ||||||
|     endif |     endif | ||||||
| @@ -403,11 +403,11 @@ define BUILD | |||||||
|         printf "$$(MAKE_MSG)\n\n"; \ |         printf "$$(MAKE_MSG)\n\n"; \ | ||||||
|         $$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \ |         $$(MAKE_CMD) $$(MAKE_VARS) SILENT=false; \ | ||||||
|         if [ $$$$? -gt 0 ]; \ |         if [ $$$$? -gt 0 ]; \ | ||||||
|             then error_occured=1; \ |             then error_occurred=1; \ | ||||||
|         fi; |         fi; | ||||||
| endef | endef | ||||||
|  |  | ||||||
| # Just parse all the keymaps for a specifc keyboard | # Just parse all the keymaps for a specific keyboard | ||||||
| define PARSE_ALL_KEYMAPS | define PARSE_ALL_KEYMAPS | ||||||
|     $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) |     $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) | ||||||
| endef | endef | ||||||
| @@ -428,7 +428,7 @@ define BUILD_TEST | |||||||
|             printf "$$(TEST_MSG)\n"; \ |             printf "$$(TEST_MSG)\n"; \ | ||||||
|             $$(TEST_EXECUTABLE); \ |             $$(TEST_EXECUTABLE); \ | ||||||
|             if [ $$$$? -gt 0 ]; \ |             if [ $$$$? -gt 0 ]; \ | ||||||
|                 then error_occured=1; \ |                 then error_occurred=1; \ | ||||||
|             fi; \ |             fi; \ | ||||||
|             printf "\n"; |             printf "\n"; | ||||||
|     endif |     endif | ||||||
| @@ -448,7 +448,7 @@ endef | |||||||
|  |  | ||||||
|  |  | ||||||
| # Set the silent mode depending on if we are trying to compile multiple keyboards or not | # 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 | # from the command line | ||||||
| define SET_SILENT_MODE | define SET_SILENT_MODE | ||||||
|     ifdef SUB_IS_SILENT |     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 | # 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 | # Otherwise the command line will become too long with a lot of keyboards and keymaps | ||||||
| define RUN_COMMAND | define RUN_COMMAND | ||||||
| +error_occured=0;\ | +error_occurred=0;\ | ||||||
| $(COMMAND_$(SILENT_MODE)_$(COMMAND))\ | $(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 | endef | ||||||
| define RUN_TEST | define RUN_TEST | ||||||
| +error_occured=0;\ | +error_occurred=0;\ | ||||||
| $($(TEST)_COMMAND)\ | $($(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 | endef | ||||||
|  |  | ||||||
| @@ -514,7 +514,7 @@ endif | |||||||
| .PHONY: all | .PHONY: all | ||||||
| all: all-keyboards test-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 | .PHONY: all-keyboards | ||||||
| all-keyboards: allkb-allsp-allkm | all-keyboards: allkb-allsp-allkm | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user