diff options
author | Fred Sundvik <fsundvik@gmail.com> | 2016-08-21 17:14:38 +0300 |
---|---|---|
committer | Fred Sundvik <fsundvik@gmail.com> | 2016-08-27 21:57:49 +0300 |
commit | 27a673f5cf75747fe73641059aae60e9b53a1c78 (patch) | |
tree | faf15b5c6055568689534478f5306cd4fe4be459 | |
parent | 6d7cd639a5e4503f00162c7cfa4bc7302b82c71c (diff) | |
download | qmk_firmware-27a673f5cf75747fe73641059aae60e9b53a1c78.tar.gz qmk_firmware-27a673f5cf75747fe73641059aae60e9b53a1c78.zip |
The makefile actually calls build_test
-rw-r--r-- | Makefile | 22 | ||||
-rw-r--r-- | build_keyboard.mk | 14 | ||||
-rw-r--r-- | build_test.mk | 5 | ||||
-rw-r--r-- | common.mk | 12 | ||||
-rw-r--r-- | message.mk | 7 |
5 files changed, 42 insertions, 18 deletions
@@ -358,7 +358,6 @@ define PARSE_KEYMAP | |||
358 | MAKE_TARGET := $$(patsubst -%,%,$$(RULE)) | 358 | MAKE_TARGET := $$(patsubst -%,%,$$(RULE)) |
359 | # We need to generate an unique indentifer to append to the COMMANDS list | 359 | # We need to generate an unique indentifer to append to the COMMANDS list |
360 | COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB)_SUBPROJECT_$(CURRENT_SP)_KEYMAP_$$(CURRENT_KM) | 360 | COMMAND := COMMAND_KEYBOARD_$$(CURRENT_KB)_SUBPROJECT_$(CURRENT_SP)_KEYMAP_$$(CURRENT_KM) |
361 | COMMANDS += $$(COMMAND) | ||
362 | # If we are compiling a keyboard without a subproject, we want to display just the name | 361 | # If we are compiling a keyboard without a subproject, we want to display just the name |
363 | # of the keyboard, otherwise keyboard/subproject | 362 | # of the keyboard, otherwise keyboard/subproject |
364 | ifeq ($$(CURRENT_SP),) | 363 | ifeq ($$(CURRENT_SP),) |
@@ -370,13 +369,18 @@ define PARSE_KEYMAP | |||
370 | KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR) | 369 | KB_SP := $(BOLD)$$(KB_SP)$(NO_COLOR) |
371 | # Specify the variables that we are passing forward to submake | 370 | # Specify the variables that we are passing forward to submake |
372 | MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM) | 371 | MAKE_VARS := KEYBOARD=$$(CURRENT_KB) SUBPROJECT=$$(CURRENT_SP) KEYMAP=$$(CURRENT_KM) |
373 | MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR) | ||
374 | # And the first part of the make command | 372 | # And the first part of the make command |
375 | MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET) | 373 | MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_keyboard.mk $$(MAKE_TARGET) |
376 | # The message to display | 374 | # The message to display |
377 | MAKE_MSG := $$(MSG_MAKE_KB) | 375 | MAKE_MSG := $$(MSG_MAKE_KB) |
378 | # We run the command differently, depending on if we want more output or not | 376 | # We run the command differently, depending on if we want more output or not |
379 | # The true version for silent output and the false version otherwise | 377 | # The true version for silent output and the false version otherwise |
378 | $$(eval $$(call BUILD)) | ||
379 | endef | ||
380 | |||
381 | define BUILD | ||
382 | MAKE_VARS += VERBOSE=$(VERBOSE) COLOR=$(COLOR) | ||
383 | COMMANDS += $$(COMMAND) | ||
380 | COMMAND_true_$$(COMMAND) := \ | 384 | COMMAND_true_$$(COMMAND) := \ |
381 | printf "$$(MAKE_MSG)" | \ | 385 | printf "$$(MAKE_MSG)" | \ |
382 | $$(MAKE_MSG_FORMAT); \ | 386 | $$(MAKE_MSG_FORMAT); \ |
@@ -398,13 +402,21 @@ define PARSE_ALL_KEYMAPS | |||
398 | $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) | 402 | $$(eval $$(call PARSE_ALL_IN_LIST,PARSE_KEYMAP,$$(KEYMAPS))) |
399 | endef | 403 | endef |
400 | 404 | ||
405 | define BUILD_TEST | ||
406 | TEST_NAME := $1 | ||
407 | MAKE_TARGET := $2 | ||
408 | COMMAND := $1 | ||
409 | MAKE_CMD := $$(MAKE) -r -R -C $(ROOT_DIR) -f build_test.mk $$(MAKE_TARGET) | ||
410 | MAKE_VARS := TEST=$$(TEST_NAME) | ||
411 | MAKE_MSG := $$(MSG_MAKE_TEST) | ||
412 | $$(eval $$(call BUILD)) | ||
413 | endef | ||
414 | |||
401 | define PARSE_TEST | 415 | define PARSE_TEST |
402 | TEST_NAME := $$(firstword $$(subst -, ,$$(RULE))) | 416 | TEST_NAME := $$(firstword $$(subst -, ,$$(RULE))) |
403 | TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE))) | 417 | TEST_TARGET := $$(subst $$(TEST_NAME),,$$(subst $$(TEST_NAME)-,,$$(RULE))) |
404 | MATCHED_TESTS := $$(foreach TEST,$$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME),$$(TEST)),$$(TEST),)) | 418 | MATCHED_TESTS := $$(foreach TEST,$$(TEST_LIST),$$(if $$(findstring $$(TEST_NAME),$$(TEST)),$$(TEST),)) |
405 | $$(info Test name $$(TEST_NAME)) | 419 | $$(foreach TEST,$$(MATCHED_TESTS),$$(eval $$(call BUILD_TEST,$$(TEST),$$(TEST_TARGET)))) |
406 | $$(info Test target $$(TEST_TARGET)) | ||
407 | $$(info $$(MATCHED_TESTS)) | ||
408 | endef | 420 | endef |
409 | 421 | ||
410 | 422 | ||
diff --git a/build_keyboard.mk b/build_keyboard.mk index f843572f6..bbe571845 100644 --- a/build_keyboard.mk +++ b/build_keyboard.mk | |||
@@ -4,19 +4,7 @@ endif | |||
4 | 4 | ||
5 | .DEFAULT_GOAL := all | 5 | .DEFAULT_GOAL := all |
6 | 6 | ||
7 | include message.mk | 7 | include common.mk |
8 | |||
9 | |||
10 | # Directory common source filess exist | ||
11 | TOP_DIR = . | ||
12 | TMK_DIR = tmk_core | ||
13 | TMK_PATH = $(TOP_DIR)/$(TMK_DIR) | ||
14 | LIB_PATH = $(TOP_DIR)/lib | ||
15 | |||
16 | QUANTUM_DIR = quantum | ||
17 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) | ||
18 | |||
19 | BUILD_DIR := $(TOP_DIR)/.build | ||
20 | 8 | ||
21 | ifneq ($(SUBPROJECT),) | 9 | ifneq ($(SUBPROJECT),) |
22 | TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) | 10 | TARGET ?= $(KEYBOARD)_$(SUBPROJECT)_$(KEYMAP) |
diff --git a/build_test.mk b/build_test.mk new file mode 100644 index 000000000..37ed8b568 --- /dev/null +++ b/build_test.mk | |||
@@ -0,0 +1,5 @@ | |||
1 | include common.mk | ||
2 | |||
3 | |||
4 | all: | ||
5 | echo Done $(TEST) \ No newline at end of file | ||
diff --git a/common.mk b/common.mk new file mode 100644 index 000000000..689fdf5a5 --- /dev/null +++ b/common.mk | |||
@@ -0,0 +1,12 @@ | |||
1 | include message.mk | ||
2 | |||
3 | # Directory common source files exist | ||
4 | TOP_DIR = . | ||
5 | TMK_DIR = tmk_core | ||
6 | TMK_PATH = $(TOP_DIR)/$(TMK_DIR) | ||
7 | LIB_PATH = $(TOP_DIR)/lib | ||
8 | |||
9 | QUANTUM_DIR = quantum | ||
10 | QUANTUM_PATH = $(TOP_DIR)/$(QUANTUM_DIR) | ||
11 | |||
12 | BUILD_DIR := $(TOP_DIR)/.build \ No newline at end of file | ||
diff --git a/message.mk b/message.mk index fb1a7a1f9..96814986b 100644 --- a/message.mk +++ b/message.mk | |||
@@ -69,3 +69,10 @@ define GENERATE_MSG_MAKE_KB | |||
69 | endif | 69 | endif |
70 | endef | 70 | endef |
71 | MSG_MAKE_KB = $(eval $(call GENERATE_MSG_MAKE_KB))$(MSG_MAKE_KB_ACTUAL) | 71 | MSG_MAKE_KB = $(eval $(call GENERATE_MSG_MAKE_KB))$(MSG_MAKE_KB_ACTUAL) |
72 | define GENERATE_MSG_MAKE_TEST | ||
73 | MSG_MAKE_TEST_ACTUAL := Making test $(BOLD)$(TEST_NAME)$(NO_COLOR) | ||
74 | ifneq ($$(MAKE_TARGET),) | ||
75 | MSG_MAKE_TEST_ACTUAL += with target $(BOLD)$$(MAKE_TARGET)$(NO_COLOR) | ||
76 | endif | ||
77 | endef | ||
78 | MSG_MAKE_TEST = $(eval $(call GENERATE_MSG_MAKE_TEST))$(MSG_MAKE_TEST_ACTUAL) | ||