From 339a4da9dc6cd5d1f21873c613269d887ee316d2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Joakim=20Nohlg=C3=A5rd?= <joakim.nohlgard@eistec.se>
Date: Wed, 27 Jan 2016 10:47:12 +0100
Subject: [PATCH] Makefiles: move to new directory /makefiles

---
 Makefile                                      |  2 +-
 Makefile.include                              | 41 +++++++++++++------
 boards/airfy-beacon/Makefile.include          |  4 +-
 boards/arduino-due/Makefile.include           |  2 +-
 boards/arduino-zero/Makefile.include          |  4 +-
 boards/calliope-mini/Makefile.include         |  4 +-
 boards/cc2538dk/Makefile.include              |  2 +-
 boards/cc2650stk/Makefile.include             |  2 +-
 boards/ek-lm4f120xl/Makefile.include          |  4 +-
 boards/f4vi1/Makefile.include                 |  2 +-
 boards/fox/Makefile.include                   |  6 +--
 boards/frdm-k64f/Makefile.include             |  4 +-
 boards/iotlab-common/Makefile.include         |  4 +-
 boards/limifrog-v1/Makefile.include           |  4 +-
 boards/maple-mini/Makefile.include            |  4 +-
 boards/mbed_lpc1768/Makefile.include          |  2 +-
 boards/microbit/Makefile.include              |  4 +-
 boards/msb-430-common/Makefile.include        |  2 +-
 boards/msbiot/Makefile.include                |  4 +-
 boards/mulle/Makefile.include                 |  4 +-
 boards/nrf51dongle/Makefile.include           |  4 +-
 boards/nrf52dk/Makefile.include               |  4 +-
 boards/nrf6310/Makefile.include               |  2 +-
 boards/nucleo-common/Makefile.include.serial  |  4 +-
 boards/opencm904/Makefile.include             |  2 +-
 boards/openmote-cc2538/Makefile.include       |  4 +-
 boards/pba-d-01-kw2x/Makefile.include         |  4 +-
 boards/pca10000/Makefile.include              |  4 +-
 boards/pca10005/Makefile.include              |  4 +-
 boards/remote-common/Makefile.include         |  2 +-
 boards/saml21-xpro/Makefile.include           |  4 +-
 boards/samr21-xpro/Makefile.include           |  4 +-
 boards/seeeduino_arch-pro/Makefile.include    |  4 +-
 boards/slwstk6220a/Makefile.include           |  4 +-
 boards/sodaq-autonomo/Makefile.include        |  4 +-
 boards/spark-core/Makefile.include            |  4 +-
 boards/stm32f0discovery/Makefile.include      |  4 +-
 boards/stm32f3discovery/Makefile.include      |  4 +-
 boards/stm32f4discovery/Makefile.include      |  4 +-
 boards/telosb/Makefile.include                |  2 +-
 boards/udoo/Makefile.include                  |  2 +-
 boards/weio/Makefile.include                  |  2 +-
 boards/wsn430-common/Makefile.include         |  2 +-
 boards/yunjia-nrf51822/Makefile.include       |  4 +-
 boards/z1/Makefile.include                    |  2 +-
 cpu/cc2538/Makefile.include                   |  2 +-
 cpu/cc26x0/Makefile.include                   |  2 +-
 cpu/ezr32wg/Makefile.include                  |  2 +-
 cpu/k60/Makefile.include                      |  2 +-
 cpu/k64f/Makefile.include                     |  2 +-
 cpu/kw2x/Makefile.include                     |  2 +-
 cpu/lm4f120/Makefile.include                  |  2 +-
 cpu/lpc11u34/Makefile.include                 |  2 +-
 cpu/lpc1768/Makefile.include                  |  2 +-
 cpu/mips32r2_common/Makefile.include          |  2 +-
 cpu/mips_pic32mx/Makefile.include             |  2 +-
 cpu/mips_pic32mz/Makefile.include             |  2 +-
 cpu/msp430_common/Makefile.include            |  2 +-
 cpu/nrf51/Makefile.include                    |  2 +-
 cpu/nrf52/Makefile.include                    |  2 +-
 cpu/sam3/Makefile.include                     |  2 +-
 cpu/samd21/Makefile.include                   |  2 +-
 cpu/saml21/Makefile.include                   |  2 +-
 cpu/stm32f0/Makefile.include                  |  2 +-
 cpu/stm32f1/Makefile.include                  |  2 +-
 cpu/stm32f2/Makefile.include                  |  2 +-
 cpu/stm32f3/Makefile.include                  |  2 +-
 cpu/stm32f4/Makefile.include                  |  3 +-
 cpu/stm32l0/Makefile.include                  |  2 +-
 cpu/stm32l1/Makefile.include                  |  2 +-
 cpu/stm32l4/Makefile.include                  |  2 +-
 .../application.inc.mk                        |  0
 .../arch/cortexm.inc.mk                       |  0
 .../arch/mips.inc.mk                          |  0
 .../arch/msp430.inc.mk                        |  3 --
 Makefile.bindist => makefiles/bindist.inc.mk  |  0
 .../buildtests.inc.mk                         |  0
 Makefile.cflags => makefiles/cflags.inc.mk    |  0
 .../defaultmodules.inc.mk                     |  0
 Makefile.docker => makefiles/docker.inc.mk    |  2 +
 .../features.inc.mk                           |  0
 Makefile.modules => makefiles/modules.inc.mk  |  0
 .../pseudomodules.inc.mk                      |  0
 .../scan-build.inc.mk                         |  0
 Makefile.tests => makefiles/tests.inc.mk      |  0
 .../toolchain/gnu.inc.mk                      |  0
 .../toolchain/llvm.inc.mk                     |  0
 .../tools/jlink.inc.mk                        |  0
 .../tools/openocd.inc.mk                      |  0
 .../tools/serial.inc.mk                       |  0
 Makefile.vars => makefiles/vars.inc.mk        |  1 +
 91 files changed, 131 insertions(+), 117 deletions(-)
 rename Makefile.application => makefiles/application.inc.mk (100%)
 rename cpu/Makefile.include.cortexm_common => makefiles/arch/cortexm.inc.mk (100%)
 rename cpu/Makefile.include.mips_common => makefiles/arch/mips.inc.mk (100%)
 rename cpu/Makefile.include.msp430_common => makefiles/arch/msp430.inc.mk (88%)
 rename Makefile.bindist => makefiles/bindist.inc.mk (100%)
 rename Makefile.buildtests => makefiles/buildtests.inc.mk (100%)
 rename Makefile.cflags => makefiles/cflags.inc.mk (100%)
 rename Makefile.defaultmodules => makefiles/defaultmodules.inc.mk (100%)
 rename Makefile.docker => makefiles/docker.inc.mk (97%)
 rename Makefile.features => makefiles/features.inc.mk (100%)
 rename Makefile.modules => makefiles/modules.inc.mk (100%)
 rename Makefile.pseudomodules => makefiles/pseudomodules.inc.mk (100%)
 rename Makefile.scan-build => makefiles/scan-build.inc.mk (100%)
 rename Makefile.tests => makefiles/tests.inc.mk (100%)
 rename cpu/Makefile.include.gnu => makefiles/toolchain/gnu.inc.mk (100%)
 rename cpu/Makefile.include.llvm => makefiles/toolchain/llvm.inc.mk (100%)
 rename boards/Makefile.include.jlink => makefiles/tools/jlink.inc.mk (100%)
 rename boards/Makefile.include.openocd => makefiles/tools/openocd.inc.mk (100%)
 rename boards/Makefile.include.serial => makefiles/tools/serial.inc.mk (100%)
 rename Makefile.vars => makefiles/vars.inc.mk (98%)

diff --git a/Makefile b/Makefile
index ca0ccbee60..dcf2fb6a16 100644
--- a/Makefile
+++ b/Makefile
@@ -37,4 +37,4 @@ welcome:
 	@echo "Or ask questions on our mailing list:"
 	@echo "    users@riot-os.org (http://lists.riot-os.org/mailman/listinfo/users)"
 
--include Makefile.tests
+-include makefiles/tests.inc.mk
diff --git a/Makefile.include b/Makefile.include
index 3c19baad5d..902a30950a 100644
--- a/Makefile.include
+++ b/Makefile.include
@@ -8,6 +8,7 @@ RIOTBASE       ?= $(dir $(lastword $(MAKEFILE_LIST)))
 CCACHE_BASEDIR ?= $(RIOTBASE)
 RIOTCPU        ?= $(RIOTBASE)/cpu
 RIOTBOARD      ?= $(RIOTBASE)/boards
+RIOTMAKE       ?= $(RIOTBASE)/makefiles
 RIOTPKG        ?= $(RIOTBASE)/pkg
 RIOTPROJECT    ?= $(shell git rev-parse --show-toplevel 2>/dev/null || pwd)
 GITCACHE       ?= $(RIOTBASE)/dist/tools/git/git-cache
@@ -16,13 +17,27 @@ BINDIRBASE     ?= $(APPDIR)/bin
 BINDIR         ?= $(BINDIRBASE)/$(BOARD)
 PKGDIRBASE     ?= $(BINDIRBASE)/pkg/$(BOARD)
 
-__DIRECTORY_VARIABLES := RIOTBASE CCACHE_BASEDIR RIOTCPU RIOTBOARD RIOTPKG GITCACHE RIOTPROJECT APPDIR BINDIRBASE BINDIR PKGDIRBASE
+__DIRECTORY_VARIABLES := \
+  RIOTBASE \
+  RIOTCPU \
+  RIOTBOARD \
+  RIOTMAKE \
+  RIOTPKG \
+  RIOTPROJECT \
+  APPDIR \
+  BINDIRBASE \
+  BINDIR \
+  CCACHE_BASEDIR \
+  GITCACHE \
+  PKGDIRBASE \
+  #
 
 # Make all paths absolute.
 override RIOTBASE       := $(abspath $(RIOTBASE))
 override CCACHE_BASEDIR := $(abspath $(CCACHE_BASEDIR))
 override RIOTCPU        := $(abspath $(RIOTCPU))
 override RIOTBOARD      := $(abspath $(RIOTBOARD))
+override RIOTMAKE       := $(abspath $(RIOTMAKE))
 override RIOTPKG        := $(abspath $(RIOTPKG))
 override RIOTPROJECT    := $(abspath $(RIOTPROJECT))
 override GITCACHE       := $(abspath $(GITCACHE))
@@ -47,10 +62,10 @@ BUILDRELPATH ?= ${PWD:${RIOTPROJECT}/%=%}/
 # Include Docker settings near the top because we need to build the environment
 # command line before some of the variable origins are overwritten below when
 # using abspath, strip etc.
-include $(RIOTBASE)/Makefile.docker
+include $(RIOTMAKE)/docker.inc.mk
 
 # Static code analysis tools provided by LLVM
-include $(RIOTBASE)/Makefile.scan-build
+include $(RIOTMAKE)/scan-build.inc.mk
 
 export RIOTBUILD_CONFIG_HEADER_C = $(BINDIR)/riotbuild/riotbuild.h
 
@@ -190,13 +205,13 @@ INCLUDES += -I$(RIOTCPU)/$(CPU)/include
 INCLUDES += -I$(RIOTBOARD)/$(BOARD)/include
 
 # mandatory includes!
-include $(RIOTBASE)/Makefile.pseudomodules
-include $(RIOTBASE)/Makefile.defaultmodules
+include $(RIOTMAKE)/pseudomodules.inc.mk
+include $(RIOTMAKE)/defaultmodules.inc.mk
 include $(RIOTBOARD)/$(BOARD)/Makefile.include
 include $(RIOTCPU)/$(CPU)/Makefile.include
 
 # Import all toolchain settings
-include $(RIOTCPU)/Makefile.include.$(TOOLCHAIN)
+include $(RIOTMAKE)/toolchain/$(TOOLCHAIN).inc.mk
 
 # get number of interfaces straight before resolving dependencies
 GNRC_NETIF_NUMOF ?= 1
@@ -239,7 +254,7 @@ ifneq (0, $(shell mkdir -p $(BINDIR); $(AR) rc $(BINDIR)/empty-archive.a 2> /dev
 endif
 
 # Feature test default CFLAGS and LINKFLAGS for the set compiled.
-include $(RIOTBASE)/Makefile.cflags
+include $(RIOTMAKE)/cflags.inc.mk
 
 # make the RIOT version available to the program
 ifeq ($(origin RIOT_VERSION), undefined)
@@ -279,7 +294,7 @@ all: ..in-docker-container
 else
 ## make script for your application. Build RIOT-base here!
 all: ..compiler-check ..build-message $(RIOTBUILD_CONFIG_HEADER_C) $(USEPKG:%=${BINDIR}/%.a) $(APPDEPS)
-	$(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTBASE)/Makefile.application
+	$(Q)DIRS="$(DIRS)" "$(MAKE)" -C $(APPDIR) -f $(RIOTMAKE)/application.inc.mk
 ifeq (,$(RIOTNOLINK))
 ifeq ($(BUILDOSXNATIVE),1)
 	$(Q)$(if $(CPPMIX),$(CXX),$(LINK)) $(UNDEF) -o $(ELFFILE) $$(find $(BASELIBS) -size +8c) $(LINKFLAGS) $(LINKFLAGPREFIX)-no_pie
@@ -407,13 +422,13 @@ $(CURDIR)/eclipsesym.xml:
 		$(RIOTBASE)/dist/tools/eclipsesym/cmdline2xml.sh > $@
 
 # Extra make goals for testing and comparing changes.
-include $(RIOTBASE)/Makefile.buildtests
+include $(RIOTMAKE)/buildtests.inc.mk
 
 # process provided features
-include $(RIOTBASE)/Makefile.features
+include $(RIOTMAKE)/features.inc.mk
 
 # Export variables used throughout the whole make system:
-include $(RIOTBASE)/Makefile.vars
+include $(RIOTMAKE)/vars.inc.mk
 
 # Warn if the selected board and drivers don't provide all needed features:
 ifneq (, $(filter all, $(if $(MAKECMDGOALS), $(MAKECMDGOALS), all)))
@@ -517,10 +532,10 @@ endif
 include $(RIOTBASE)/dist/tools/desvirt/Makefile.desvirt
 
 # include bindist target
-include $(RIOTBASE)/Makefile.bindist
+include $(RIOTMAKE)/bindist.inc.mk
 
 # Add all USEMODULE modules to CFLAGS
-include $(RIOTBASE)/Makefile.modules
+include $(RIOTMAKE)/modules.inc.mk
 
 # Build a header file with all common macro definitions and undefinitions
 # make it phony to force re-run of the script every time even if the file exists
diff --git a/boards/airfy-beacon/Makefile.include b/boards/airfy-beacon/Makefile.include
index 14eaf50014..759cf37a4d 100644
--- a/boards/airfy-beacon/Makefile.include
+++ b/boards/airfy-beacon/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/arduino-due/Makefile.include b/boards/arduino-due/Makefile.include
index 08c0eefea7..a943e194c3 100644
--- a/boards/arduino-due/Makefile.include
+++ b/boards/arduino-due/Makefile.include
@@ -11,4 +11,4 @@ export FLASHER = $(RIOTBOARD)/$(BOARD)/dist/flash.sh
 export OFLAGS = -O binary
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/arduino-zero/Makefile.include b/boards/arduino-zero/Makefile.include
index 83a0716a48..d8a948a807 100644
--- a/boards/arduino-zero/Makefile.include
+++ b/boards/arduino-zero/Makefile.include
@@ -7,7 +7,7 @@ export PORT_LINUX ?= /dev/ttyACM0
 export PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # Add board selector (USB serial) to OpenOCD options if specified.
 # Use /dist/tools/usb-serial/list-ttys.sh to find out serial number.
@@ -22,4 +22,4 @@ ifneq (,$(SERIAL))
 endif
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/calliope-mini/Makefile.include b/boards/calliope-mini/Makefile.include
index d9c05ab559..3d131cdeda 100644
--- a/boards/calliope-mini/Makefile.include
+++ b/boards/calliope-mini/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # we support flashing through plain fscopy or using JLink
 FLASHTOOL ?= fscopy
@@ -22,7 +22,7 @@ ifeq (fscopy,$(FLASHTOOL))
   export DEBUGSERVER =
 else ifeq (jlink,$(FLASHTOOL))
   export JLINK_DEVICE := nrf51822
-  include $(RIOTBOARD)/Makefile.include.jlink
+  include $(RIOTMAKE)/tools/jlink.inc.mk
 else
   $(info ERROR: invalid flash tool specified)
 endif
diff --git a/boards/cc2538dk/Makefile.include b/boards/cc2538dk/Makefile.include
index d135265865..ccdd448d0e 100644
--- a/boards/cc2538dk/Makefile.include
+++ b/boards/cc2538dk/Makefile.include
@@ -9,7 +9,7 @@ export PROGRAMMER_SERIAL ?= 06EB
 # the debug UART is always the second tty with the matching serial number:
 PORT_LINUX ?= $(word 2,$(shell $(RIOTBASE)/dist/tools/usb-serial/find-tty.sh '^$(PROGRAMMER_SERIAL)'))
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial*)))
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # debugger config
 export DEBUGGER = $(RIOTBOARD)/$(BOARD)/dist/debug.sh
diff --git a/boards/cc2650stk/Makefile.include b/boards/cc2650stk/Makefile.include
index aecba3b4f0..25258b5614 100644
--- a/boards/cc2650stk/Makefile.include
+++ b/boards/cc2650stk/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX  ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # configure the flash tool
 export UNIFLASH_PATH ?= "UNIFLASH_PATH unconfigured"
diff --git a/boards/ek-lm4f120xl/Makefile.include b/boards/ek-lm4f120xl/Makefile.include
index 373406db2e..d29ea94951 100644
--- a/boards/ek-lm4f120xl/Makefile.include
+++ b/boards/ek-lm4f120xl/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/f4vi1/Makefile.include b/boards/f4vi1/Makefile.include
index 19d12fd50e..7ddb27bf60 100644
--- a/boards/f4vi1/Makefile.include
+++ b/boards/f4vi1/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # st-flash
 export FLASHER = st-flash
diff --git a/boards/fox/Makefile.include b/boards/fox/Makefile.include
index d7955baeaa..30ea922487 100644
--- a/boards/fox/Makefile.include
+++ b/boards/fox/Makefile.include
@@ -4,10 +4,10 @@ export CPU_MODEL = stm32f103re
 
 # set default port depending on operating system
 PORT_LINUX ?= /dev/ttyUSB1
-PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial*B)))
+PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/frdm-k64f/Makefile.include b/boards/frdm-k64f/Makefile.include
index 8e063b292e..e624601ea0 100644
--- a/boards/frdm-k64f/Makefile.include
+++ b/boards/frdm-k64f/Makefile.include
@@ -24,7 +24,7 @@ export OPENOCD_EXTRA_INIT
 export PRE_FLASH_CHECK_SCRIPT = $(RIOTCPU)/kinetis_common/dist/check-fcfield-elf.sh
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/iotlab-common/Makefile.include b/boards/iotlab-common/Makefile.include
index 43974f6d6e..93260391c7 100644
--- a/boards/iotlab-common/Makefile.include
+++ b/boards/iotlab-common/Makefile.include
@@ -8,10 +8,10 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial*B)))
 
 # setup serial terminal
 export BAUD = 500000
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
 
 # add the common header files to the include path
 INCLUDES += -I$(RIOTBOARD)/iotlab-common/include
diff --git a/boards/limifrog-v1/Makefile.include b/boards/limifrog-v1/Makefile.include
index 4063653936..1855b1f352 100644
--- a/boards/limifrog-v1/Makefile.include
+++ b/boards/limifrog-v1/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/maple-mini/Makefile.include b/boards/maple-mini/Makefile.include
index 9ca99b8298..ba4a3e1b75 100644
--- a/boards/maple-mini/Makefile.include
+++ b/boards/maple-mini/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/mbed_lpc1768/Makefile.include b/boards/mbed_lpc1768/Makefile.include
index e6c64263cb..58f1721a7b 100644
--- a/boards/mbed_lpc1768/Makefile.include
+++ b/boards/mbed_lpc1768/Makefile.include
@@ -15,4 +15,4 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/microbit/Makefile.include b/boards/microbit/Makefile.include
index 57822ccd2a..4c566a29d4 100644
--- a/boards/microbit/Makefile.include
+++ b/boards/microbit/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # we support flashing through plain fscopy or using JLink
 FLASHTOOL ?= fscopy
@@ -22,7 +22,7 @@ ifeq (fscopy,$(FLASHTOOL))
   export DEBUGSERVER =
 else ifeq (jlink,$(FLASHTOOL))
   export JLINK_DEVICE := nrf51822
-  include $(RIOTBOARD)/Makefile.include.jlink
+  include $(RIOTMAKE)/tools/jlink.inc.mk
 else
   $(info ERROR: invalid flash tool specified)
 endif
diff --git a/boards/msb-430-common/Makefile.include b/boards/msb-430-common/Makefile.include
index 71bc5200b9..51ed1df09a 100644
--- a/boards/msb-430-common/Makefile.include
+++ b/boards/msb-430-common/Makefile.include
@@ -6,7 +6,7 @@ export CPU_MODEL = msp430f1612
 PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # setup flash tool
 export OFLAGS = -O ihex
diff --git a/boards/msbiot/Makefile.include b/boards/msbiot/Makefile.include
index 1df898f14c..d87c020ab0 100644
--- a/boards/msbiot/Makefile.include
+++ b/boards/msbiot/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/mulle/Makefile.include b/boards/mulle/Makefile.include
index 67890b37f5..a4bb2aca4c 100644
--- a/boards/mulle/Makefile.include
+++ b/boards/mulle/Makefile.include
@@ -111,7 +111,7 @@ flash: $(RIOTCPU)/kinetis_common/dist/wdog-disable.bin
 .DEFAULT_GOAL :=
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/nrf51dongle/Makefile.include b/boards/nrf51dongle/Makefile.include
index 53810879fd..089340c484 100644
--- a/boards/nrf51dongle/Makefile.include
+++ b/boards/nrf51dongle/Makefile.include
@@ -8,7 +8,7 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup JLink for flashing
 export JLINK_DEVICE := nrf51822
-include $(RIOTBOARD)/Makefile.include.jlink
+include $(RIOTMAKE)/tools/jlink.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/nrf52dk/Makefile.include b/boards/nrf52dk/Makefile.include
index b646f3e6fd..40df3b3f96 100644
--- a/boards/nrf52dk/Makefile.include
+++ b/boards/nrf52dk/Makefile.include
@@ -15,7 +15,7 @@ export JLINK_PRE_FLASH := erase\nloadfile $(BINDIR)/softdevice.hex
 export JLINK_FLASH_ADDR := 0x1f000
 export LINKER_SCRIPT ?= $(RIOTCPU)/$(CPU)/ldscripts/$(CPU_MODEL)_sd.ld
 endif
-include $(RIOTBOARD)/Makefile.include.jlink
+include $(RIOTMAKE)/tools/jlink.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/nrf6310/Makefile.include b/boards/nrf6310/Makefile.include
index 6db9e3a7bd..7a1e1dec76 100644
--- a/boards/nrf6310/Makefile.include
+++ b/boards/nrf6310/Makefile.include
@@ -20,4 +20,4 @@ export DEBUGGER_FLAGS = $(BINDIR) $(ELFFILE)
 export RESET_FLAGS = $(BINDIR)
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/nucleo-common/Makefile.include.serial b/boards/nucleo-common/Makefile.include.serial
index 781d8d0a46..1c5e4d00d0 100644
--- a/boards/nucleo-common/Makefile.include.serial
+++ b/boards/nucleo-common/Makefile.include.serial
@@ -3,7 +3,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/opencm904/Makefile.include b/boards/opencm904/Makefile.include
index 4c1dfda5de..18b0b6cffa 100755
--- a/boards/opencm904/Makefile.include
+++ b/boards/opencm904/Makefile.include
@@ -20,4 +20,4 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/openmote-cc2538/Makefile.include b/boards/openmote-cc2538/Makefile.include
index f4eb8415a4..549c7476f8 100644
--- a/boards/openmote-cc2538/Makefile.include
+++ b/boards/openmote-cc2538/Makefile.include
@@ -15,7 +15,7 @@ ifeq ($(PROGRAMMER),jlink)
   export JLINK_FLASH_ADDR := 200000
   export JLINK_IF := JTAG
   export TUI := 1
-  include $(RIOTBOARD)/Makefile.include.jlink
+  include $(RIOTMAKE)/tools/jlink.inc.mk
 else
   export OFLAGS = -O binary
   export HEXFILE = $(ELFFILE:.elf=.bin)
@@ -24,4 +24,4 @@ else
 endif
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/pba-d-01-kw2x/Makefile.include b/boards/pba-d-01-kw2x/Makefile.include
index 3340ebf419..97d6a7192b 100644
--- a/boards/pba-d-01-kw2x/Makefile.include
+++ b/boards/pba-d-01-kw2x/Makefile.include
@@ -40,7 +40,7 @@ ifneq (,$(SERIAL))
 endif
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/pca10000/Makefile.include b/boards/pca10000/Makefile.include
index 7b11716814..55826907c0 100644
--- a/boards/pca10000/Makefile.include
+++ b/boards/pca10000/Makefile.include
@@ -9,7 +9,7 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup JLink for flashing
 export JLINK_DEVICE := nrf51822
 export JLINK_PRE_FLASH := w4 4001e504 1
-include $(RIOTBOARD)/Makefile.include.jlink
+include $(RIOTMAKE)/tools/jlink.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/pca10005/Makefile.include b/boards/pca10005/Makefile.include
index 202562d2d3..4c62ef1f6b 100644
--- a/boards/pca10005/Makefile.include
+++ b/boards/pca10005/Makefile.include
@@ -9,7 +9,7 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup JLink for flashing
 export JLINK_DEVICE := nrf51822
 export JLINK_PRE_FLASH := w4 4001e504 1
-include $(RIOTBOARD)/Makefile.include.jlink
+include $(RIOTMAKE)/tools/jlink.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/remote-common/Makefile.include b/boards/remote-common/Makefile.include
index b6901b8d89..9f3e9fca76 100644
--- a/boards/remote-common/Makefile.include
+++ b/boards/remote-common/Makefile.include
@@ -32,4 +32,4 @@ export OBJDUMPFLAGS += --disassemble --source --disassembler-options=force-thumb
 export INCLUDES += -I$(RIOTBOARD)/remote-common/include
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/saml21-xpro/Makefile.include b/boards/saml21-xpro/Makefile.include
index fb6a6119fc..c96d71bec7 100644
--- a/boards/saml21-xpro/Makefile.include
+++ b/boards/saml21-xpro/Makefile.include
@@ -5,7 +5,7 @@ export CFLAGS += -D__SAML21J18A__
 
 # setup serial terminal
 PORT_LINUX ?= /dev/ttyACM0
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/samr21-xpro/Makefile.include b/boards/samr21-xpro/Makefile.include
index 3502134f1a..7f68e0eaa1 100644
--- a/boards/samr21-xpro/Makefile.include
+++ b/boards/samr21-xpro/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # Add board selector (USB serial) to OpenOCD options if specified.
 # Use /dist/tools/usb-serial/list-ttys.sh to find out serial number.
@@ -22,4 +22,4 @@ ifneq (,$(SERIAL))
 endif
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/seeeduino_arch-pro/Makefile.include b/boards/seeeduino_arch-pro/Makefile.include
index ae3f48f8e7..73f97a001b 100644
--- a/boards/seeeduino_arch-pro/Makefile.include
+++ b/boards/seeeduino_arch-pro/Makefile.include
@@ -6,10 +6,10 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
 
 # generate image checksum from hex file
 export PRE_FLASH_CHECK_SCRIPT = lpc_checksum --format hex
diff --git a/boards/slwstk6220a/Makefile.include b/boards/slwstk6220a/Makefile.include
index 991661748a..1fb937e0d0 100644
--- a/boards/slwstk6220a/Makefile.include
+++ b/boards/slwstk6220a/Makefile.include
@@ -8,7 +8,7 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 
 # setup JLink for flashing
 export JLINK_DEVICE := ezr32wg330f256
-include $(RIOTBOARD)/Makefile.include.jlink
+include $(RIOTMAKE)/tools/jlink.inc.mk
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/sodaq-autonomo/Makefile.include b/boards/sodaq-autonomo/Makefile.include
index 8949df181a..83eb6a0314 100644
--- a/boards/sodaq-autonomo/Makefile.include
+++ b/boards/sodaq-autonomo/Makefile.include
@@ -9,7 +9,7 @@ PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbmodem*)))
 export OFLAGS = -O binary
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # Add board selector (USB serial) to OpenOCD options if specified.
 # Use /dist/tools/usb-serial/list-ttys.sh to find out serial number.
@@ -24,4 +24,4 @@ ifneq (,$(SERIAL))
 endif
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/spark-core/Makefile.include b/boards/spark-core/Makefile.include
index 7ff46a0183..0710da46ef 100644
--- a/boards/spark-core/Makefile.include
+++ b/boards/spark-core/Makefile.include
@@ -22,7 +22,7 @@ export TERMFLAGS = -p $(PORT)
 export INCLUDES += -I$(RIOTCPU)/$(CPU)/include/ -I$(RIOTBOARD)/$(BOARD)/include/
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/stm32f0discovery/Makefile.include b/boards/stm32f0discovery/Makefile.include
index f0a04d1444..628b16fa30 100644
--- a/boards/stm32f0discovery/Makefile.include
+++ b/boards/stm32f0discovery/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/stm32f3discovery/Makefile.include b/boards/stm32f3discovery/Makefile.include
index 4389d6e7d9..6e6ca2a419 100644
--- a/boards/stm32f3discovery/Makefile.include
+++ b/boards/stm32f3discovery/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/stm32f4discovery/Makefile.include b/boards/stm32f4discovery/Makefile.include
index 221cfa9757..def388e08d 100644
--- a/boards/stm32f4discovery/Makefile.include
+++ b/boards/stm32f4discovery/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/telosb/Makefile.include b/boards/telosb/Makefile.include
index c84cacd0bd..7d062b4274 100644
--- a/boards/telosb/Makefile.include
+++ b/boards/telosb/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.usbserial-MXV*)))
 # setup serial terminal
 export BAUD ?= 9600
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # flash tool configuration
 export OFLAGS = -O ihex
diff --git a/boards/udoo/Makefile.include b/boards/udoo/Makefile.include
index c732861485..f566c727b5 100644
--- a/boards/udoo/Makefile.include
+++ b/boards/udoo/Makefile.include
@@ -21,4 +21,4 @@ export OFLAGS = -O binary
 export FFLAGS = -R -e -w -v -b bin/$(BOARD)/$(APPLICATION).hex
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/weio/Makefile.include b/boards/weio/Makefile.include
index 766053b7ca..188b5a1302 100644
--- a/boards/weio/Makefile.include
+++ b/boards/weio/Makefile.include
@@ -15,4 +15,4 @@ PORT_LINUX ?= /dev/ttyACM0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
diff --git a/boards/wsn430-common/Makefile.include b/boards/wsn430-common/Makefile.include
index 9daf460eb2..024d09c767 100644
--- a/boards/wsn430-common/Makefile.include
+++ b/boards/wsn430-common/Makefile.include
@@ -6,7 +6,7 @@ export CPU_MODEL = msp430f1611
 PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # setup flash tool
 export OFLAGS = -O ihex
diff --git a/boards/yunjia-nrf51822/Makefile.include b/boards/yunjia-nrf51822/Makefile.include
index 14eaf50014..759cf37a4d 100644
--- a/boards/yunjia-nrf51822/Makefile.include
+++ b/boards/yunjia-nrf51822/Makefile.include
@@ -7,7 +7,7 @@ PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # this board uses openocd
-include $(RIOTBOARD)/Makefile.include.openocd
+include $(RIOTMAKE)/tools/openocd.inc.mk
diff --git a/boards/z1/Makefile.include b/boards/z1/Makefile.include
index fa3dea543c..a215e48f14 100644
--- a/boards/z1/Makefile.include
+++ b/boards/z1/Makefile.include
@@ -6,7 +6,7 @@ export CPU_MODEL = msp430f2617
 PORT_LINUX ?= /dev/ttyUSB0
 PORT_DARWIN ?= $(firstword $(sort $(wildcard /dev/tty.SLAB_USBtoUART*)))
 # setup serial terminal
-include $(RIOTBOARD)/Makefile.include.serial
+include $(RIOTMAKE)/tools/serial.inc.mk
 
 # setup flash tool
 export OFLAGS = -O ihex
diff --git a/cpu/cc2538/Makefile.include b/cpu/cc2538/Makefile.include
index 3c829bccf0..bc93aaa0eb 100644
--- a/cpu/cc2538/Makefile.include
+++ b/cpu/cc2538/Makefile.include
@@ -3,4 +3,4 @@ export CPU_ARCH := cortex-m3
 # include common SPI functions
 USEMODULE += periph_common
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/cc26x0/Makefile.include b/cpu/cc26x0/Makefile.include
index 507f47d21b..7a03b807df 100644
--- a/cpu/cc26x0/Makefile.include
+++ b/cpu/cc26x0/Makefile.include
@@ -1,3 +1,3 @@
 export CPU_ARCH := cortex-m3
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/ezr32wg/Makefile.include b/cpu/ezr32wg/Makefile.include
index eb5d45d596..1e08098b24 100644
--- a/cpu/ezr32wg/Makefile.include
+++ b/cpu/ezr32wg/Makefile.include
@@ -1,3 +1,3 @@
 export CPU_ARCH = cortex-m4f
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/k60/Makefile.include b/cpu/k60/Makefile.include
index a71bcf13c5..7864add139 100644
--- a/cpu/k60/Makefile.include
+++ b/cpu/k60/Makefile.include
@@ -22,4 +22,4 @@ export COMMON_STARTUP = $(KINETIS_COMMON)
 export UNDEF += $(BINDIR)/cpu/vectors.o
 export UNDEF += $(BINDIR)/cpu/ssp.o
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/k64f/Makefile.include b/cpu/k64f/Makefile.include
index fd234523cc..1ef70e6970 100644
--- a/cpu/k64f/Makefile.include
+++ b/cpu/k64f/Makefile.include
@@ -21,4 +21,4 @@ export COMMON_STARTUP = $(KINETIS_COMMON)
 # add the CPU specific system calls implementations for the linker
 export UNDEF += $(BINDIR)/cpu/vectors.o
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/kw2x/Makefile.include b/cpu/kw2x/Makefile.include
index 76e3daea5d..e194a2124d 100644
--- a/cpu/kw2x/Makefile.include
+++ b/cpu/kw2x/Makefile.include
@@ -21,4 +21,4 @@ export COMMON_STARTUP = $(KINETIS_COMMON)
 # add the CPU specific system calls implementations for the linker
 export UNDEF += $(BINDIR)/cpu/vectors.o
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/lm4f120/Makefile.include b/cpu/lm4f120/Makefile.include
index 50e87844f2..e038dd686d 100644
--- a/cpu/lm4f120/Makefile.include
+++ b/cpu/lm4f120/Makefile.include
@@ -1,4 +1,4 @@
 export CPU_ARCH = cortex-m4f
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
 include $(RIOTCPU)/stellaris_common/Makefile
diff --git a/cpu/lpc11u34/Makefile.include b/cpu/lpc11u34/Makefile.include
index 04c2fd5dd4..2611058385 100644
--- a/cpu/lpc11u34/Makefile.include
+++ b/cpu/lpc11u34/Makefile.include
@@ -1,3 +1,3 @@
 export CPU_ARCH = cortex-m0
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/lpc1768/Makefile.include b/cpu/lpc1768/Makefile.include
index f16ada89b8..259ee2a90e 100644
--- a/cpu/lpc1768/Makefile.include
+++ b/cpu/lpc1768/Makefile.include
@@ -1,3 +1,3 @@
 export CPU_ARCH = cortex-m3
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/mips32r2_common/Makefile.include b/cpu/mips32r2_common/Makefile.include
index 644a65df40..40fa8dbf36 100644
--- a/cpu/mips32r2_common/Makefile.include
+++ b/cpu/mips32r2_common/Makefile.include
@@ -2,7 +2,7 @@ export MEMORY_BASE=0x80000000
 export MEMORY_SIZE=1M
 export APP_START=0x80000000
 
-include $(RIOTCPU)/Makefile.include.mips_common
+include $(RIOTMAKE)/arch/mips.inc.mk
 
 export LINKFLAGS += -Tuhi32.ld
 export USEMODULE += periph
diff --git a/cpu/mips_pic32mx/Makefile.include b/cpu/mips_pic32mx/Makefile.include
index c7d6b88495..6626e67c8e 100644
--- a/cpu/mips_pic32mx/Makefile.include
+++ b/cpu/mips_pic32mx/Makefile.include
@@ -3,7 +3,7 @@ export MEMORY_SIZE=128K
 export APP_START=0x80000000
 export ROMABLE = 1
 
-include $(RIOTCPU)/Makefile.include.mips_common
+include $(RIOTMAKE)/arch/mips.inc.mk
 
 # define build specific options
 export CFLAGS += -march=m4k -DSKIP_COPY_TO_RAM
diff --git a/cpu/mips_pic32mz/Makefile.include b/cpu/mips_pic32mz/Makefile.include
index 7a36d5131e..30524b9497 100644
--- a/cpu/mips_pic32mz/Makefile.include
+++ b/cpu/mips_pic32mz/Makefile.include
@@ -3,7 +3,7 @@ export MEMORY_SIZE=512K
 export APP_START=0x80000000
 export ROMABLE = 1
 
-include $(RIOTCPU)/Makefile.include.mips_common
+include $(RIOTMAKE)/arch/mips.inc.mk
 
 # define build specific options
 export CFLAGS += -march=m5101 -mmicromips -DSKIP_COPY_TO_RAM
diff --git a/cpu/msp430_common/Makefile.include b/cpu/msp430_common/Makefile.include
index b0f3d009a6..ca676e5065 100644
--- a/cpu/msp430_common/Makefile.include
+++ b/cpu/msp430_common/Makefile.include
@@ -6,4 +6,4 @@ export USEMODULE += msp430_common msp430_common_periph
 DEFAULT_MODULE += oneway_malloc
 
 # include the msp430 common Makefile
-include $(RIOTCPU)/Makefile.include.msp430_common
+include $(RIOTMAKE)/arch/msp430.inc.mk
diff --git a/cpu/nrf51/Makefile.include b/cpu/nrf51/Makefile.include
index a3b630b9b5..b182bf12fa 100644
--- a/cpu/nrf51/Makefile.include
+++ b/cpu/nrf51/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m0
 export CPU_FAM  = nrf51
 
 include $(RIOTCPU)/nrf5x_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/nrf52/Makefile.include b/cpu/nrf52/Makefile.include
index 073024aac6..196831749b 100644
--- a/cpu/nrf52/Makefile.include
+++ b/cpu/nrf52/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m4f
 export CPU_FAM  = nrf52
 
 include $(RIOTCPU)/nrf5x_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/sam3/Makefile.include b/cpu/sam3/Makefile.include
index ea9548deba..7a2337733e 100644
--- a/cpu/sam3/Makefile.include
+++ b/cpu/sam3/Makefile.include
@@ -3,4 +3,4 @@ export CPU_ARCH = cortex-m3
 # include common SPI functions
 USEMODULE += periph_common
 
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/samd21/Makefile.include b/cpu/samd21/Makefile.include
index a95fff8036..e5486c8a89 100644
--- a/cpu/samd21/Makefile.include
+++ b/cpu/samd21/Makefile.include
@@ -4,4 +4,4 @@ export CPU_FAM  = samd21
 USEMODULE += pm_layered
 
 include $(RIOTCPU)/sam0_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/saml21/Makefile.include b/cpu/saml21/Makefile.include
index 3ff606767e..951564302b 100644
--- a/cpu/saml21/Makefile.include
+++ b/cpu/saml21/Makefile.include
@@ -4,4 +4,4 @@ export CPU_FAM  = saml21
 USEMODULE += pm_layered
 
 include $(RIOTCPU)/sam0_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32f0/Makefile.include b/cpu/stm32f0/Makefile.include
index daa2827f93..18fc5c661d 100644
--- a/cpu/stm32f0/Makefile.include
+++ b/cpu/stm32f0/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m0
 export CPU_FAM  = stm32f0
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32f1/Makefile.include b/cpu/stm32f1/Makefile.include
index ca6dcc2109..abe4696648 100644
--- a/cpu/stm32f1/Makefile.include
+++ b/cpu/stm32f1/Makefile.include
@@ -4,4 +4,4 @@ export CPU_FAM  = stm32f1
 USEMODULE += pm_layered
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32f2/Makefile.include b/cpu/stm32f2/Makefile.include
index 9271fa2774..453f82cd46 100644
--- a/cpu/stm32f2/Makefile.include
+++ b/cpu/stm32f2/Makefile.include
@@ -4,4 +4,4 @@ export CPU_FAM  = stm32f2
 USEMODULE += pm_layered
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32f3/Makefile.include b/cpu/stm32f3/Makefile.include
index b733349bee..3ad9e9546c 100644
--- a/cpu/stm32f3/Makefile.include
+++ b/cpu/stm32f3/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m4f
 export CPU_FAM  = stm32f3
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32f4/Makefile.include b/cpu/stm32f4/Makefile.include
index bf4156f52d..c88560db69 100644
--- a/cpu/stm32f4/Makefile.include
+++ b/cpu/stm32f4/Makefile.include
@@ -4,5 +4,4 @@ export CPU_FAM  = stm32f4
 USEMODULE += pm_layered
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32l0/Makefile.include b/cpu/stm32l0/Makefile.include
index 8814ecd405..42b0a85b66 100644
--- a/cpu/stm32l0/Makefile.include
+++ b/cpu/stm32l0/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m0
 export CPU_FAM  = stm32l0
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32l1/Makefile.include b/cpu/stm32l1/Makefile.include
index 2eeadee455..3d6f379e13 100644
--- a/cpu/stm32l1/Makefile.include
+++ b/cpu/stm32l1/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m3
 export CPU_FAM  = stm32l1
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/cpu/stm32l4/Makefile.include b/cpu/stm32l4/Makefile.include
index f5c37b0a6e..82e28ee689 100644
--- a/cpu/stm32l4/Makefile.include
+++ b/cpu/stm32l4/Makefile.include
@@ -2,4 +2,4 @@ export CPU_ARCH = cortex-m4f
 export CPU_FAM  = stm32l4
 
 include $(RIOTCPU)/stm32_common/Makefile.include
-include $(RIOTCPU)/Makefile.include.cortexm_common
+include $(RIOTMAKE)/arch/cortexm.inc.mk
diff --git a/Makefile.application b/makefiles/application.inc.mk
similarity index 100%
rename from Makefile.application
rename to makefiles/application.inc.mk
diff --git a/cpu/Makefile.include.cortexm_common b/makefiles/arch/cortexm.inc.mk
similarity index 100%
rename from cpu/Makefile.include.cortexm_common
rename to makefiles/arch/cortexm.inc.mk
diff --git a/cpu/Makefile.include.mips_common b/makefiles/arch/mips.inc.mk
similarity index 100%
rename from cpu/Makefile.include.mips_common
rename to makefiles/arch/mips.inc.mk
diff --git a/cpu/Makefile.include.msp430_common b/makefiles/arch/msp430.inc.mk
similarity index 88%
rename from cpu/Makefile.include.msp430_common
rename to makefiles/arch/msp430.inc.mk
index 88b0450cfa..e892289c8e 100644
--- a/cpu/Makefile.include.msp430_common
+++ b/makefiles/arch/msp430.inc.mk
@@ -12,6 +12,3 @@ export CFLAGS += $(CFLAGS_CPU) $(CFLAGS_LINK) $(CFLAGS_DBG) $(CFLAGS_OPT)
 export ASFLAGS += $(CFLAGS_CPU) --defsym $(CPU_MODEL)=1 $(CFLAGS_DBG)
 # export linker flags
 export LINKFLAGS += $(CFLAGS_CPU) $(CFLAGS_DBG) $(CFLAGS_OPT) -Wl,--gc-sections -static -lgcc
-
-# Import all toolchain settings
-include $(RIOTCPU)/Makefile.include.gnu
diff --git a/Makefile.bindist b/makefiles/bindist.inc.mk
similarity index 100%
rename from Makefile.bindist
rename to makefiles/bindist.inc.mk
diff --git a/Makefile.buildtests b/makefiles/buildtests.inc.mk
similarity index 100%
rename from Makefile.buildtests
rename to makefiles/buildtests.inc.mk
diff --git a/Makefile.cflags b/makefiles/cflags.inc.mk
similarity index 100%
rename from Makefile.cflags
rename to makefiles/cflags.inc.mk
diff --git a/Makefile.defaultmodules b/makefiles/defaultmodules.inc.mk
similarity index 100%
rename from Makefile.defaultmodules
rename to makefiles/defaultmodules.inc.mk
diff --git a/Makefile.docker b/makefiles/docker.inc.mk
similarity index 97%
rename from Makefile.docker
rename to makefiles/docker.inc.mk
index c882b0fe3c..6419ab26ee 100644
--- a/Makefile.docker
+++ b/makefiles/docker.inc.mk
@@ -92,12 +92,14 @@ DOCKER_OVERRIDE_CMDLINE := $(strip $(DOCKER_OVERRIDE_CMDLINE))
 	    -v '$(RIOTBASE):$(DOCKER_BUILD_ROOT)/riotbase' \
 	    -v '$(RIOTCPU):$(DOCKER_BUILD_ROOT)/riotcpu' \
 	    -v '$(RIOTBOARD):$(DOCKER_BUILD_ROOT)/riotboard' \
+	    -v '$(RIOTMAKE):$(DOCKER_BUILD_ROOT)/riotmake' \
 	    -v '$(RIOTPROJECT):$(DOCKER_BUILD_ROOT)/riotproject' \
 	    -v /etc/localtime:/etc/localtime:ro \
 	    -e 'RIOTBASE=$(DOCKER_BUILD_ROOT)/riotbase' \
 	    -e 'CCACHE_BASEDIR=$(DOCKER_BUILD_ROOT)/riotbase' \
 	    -e 'RIOTCPU=$(DOCKER_BUILD_ROOT)/riotcpu' \
 	    -e 'RIOTBOARD=$(DOCKER_BUILD_ROOT)/riotboard' \
+	    -e 'RIOTMAKE=$(DOCKER_BUILD_ROOT)/riotmake' \
 	    -e 'RIOTPROJECT=$(DOCKER_BUILD_ROOT)/riotproject' \
 	    $(DOCKER_ENVIRONMENT_CMDLINE) \
 	    -w '$(DOCKER_BUILD_ROOT)/riotproject/$(BUILDRELPATH)' \
diff --git a/Makefile.features b/makefiles/features.inc.mk
similarity index 100%
rename from Makefile.features
rename to makefiles/features.inc.mk
diff --git a/Makefile.modules b/makefiles/modules.inc.mk
similarity index 100%
rename from Makefile.modules
rename to makefiles/modules.inc.mk
diff --git a/Makefile.pseudomodules b/makefiles/pseudomodules.inc.mk
similarity index 100%
rename from Makefile.pseudomodules
rename to makefiles/pseudomodules.inc.mk
diff --git a/Makefile.scan-build b/makefiles/scan-build.inc.mk
similarity index 100%
rename from Makefile.scan-build
rename to makefiles/scan-build.inc.mk
diff --git a/Makefile.tests b/makefiles/tests.inc.mk
similarity index 100%
rename from Makefile.tests
rename to makefiles/tests.inc.mk
diff --git a/cpu/Makefile.include.gnu b/makefiles/toolchain/gnu.inc.mk
similarity index 100%
rename from cpu/Makefile.include.gnu
rename to makefiles/toolchain/gnu.inc.mk
diff --git a/cpu/Makefile.include.llvm b/makefiles/toolchain/llvm.inc.mk
similarity index 100%
rename from cpu/Makefile.include.llvm
rename to makefiles/toolchain/llvm.inc.mk
diff --git a/boards/Makefile.include.jlink b/makefiles/tools/jlink.inc.mk
similarity index 100%
rename from boards/Makefile.include.jlink
rename to makefiles/tools/jlink.inc.mk
diff --git a/boards/Makefile.include.openocd b/makefiles/tools/openocd.inc.mk
similarity index 100%
rename from boards/Makefile.include.openocd
rename to makefiles/tools/openocd.inc.mk
diff --git a/boards/Makefile.include.serial b/makefiles/tools/serial.inc.mk
similarity index 100%
rename from boards/Makefile.include.serial
rename to makefiles/tools/serial.inc.mk
diff --git a/Makefile.vars b/makefiles/vars.inc.mk
similarity index 98%
rename from Makefile.vars
rename to makefiles/vars.inc.mk
index e4267d1d5c..a6404a347d 100644
--- a/Makefile.vars
+++ b/makefiles/vars.inc.mk
@@ -19,6 +19,7 @@ export RIOTCPU               # For third party CPUs this folder is the base of t
 export RIOTBOARD             # For third party BOARDs this folder is the base of the BOARDs.
 export RIOTPKG               # For overriding RIOT's pkg directory
 export RIOTPROJECT           # Top level git root of the project being built, or PWD if not a git repository
+export RIOTMAKE              # Location of all supplemental Makefiles (such as this file)
 export BINDIRBASE            # This is the folder where the application should be built in. For each BOARD a different subfolder is used.
 export BINDIR                # This is the folder where the application should be built in.
 export APPDIR                # The base folder containing the application
-- 
GitLab