From 9536a80e524ae2b54575c69e28c943d282d3fcee Mon Sep 17 00:00:00 2001 From: Francisco Molina Date: Wed, 18 Mar 2020 13:31:01 +0100 Subject: [PATCH] Makefile.dep: use stdio.inc.mk Move all stdio dependencies to its own makefile --- Makefile.dep | 50 ++------------------------------- makefiles/stdio.inc.mk | 64 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 66 insertions(+), 48 deletions(-) create mode 100644 makefiles/stdio.inc.mk diff --git a/Makefile.dep b/Makefile.dep index 21f5d2f2ef..867d4615ac 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -440,9 +440,6 @@ ifneq (,$(filter newlib,$(USEMODULE))) ifeq (,$(filter newlib_syscalls_%,$(USEMODULE))) USEMODULE += newlib_syscalls_default endif - ifeq (,$(filter stdio_cdc_acm stdio_native stdio_null stdio_rtt slipdev_stdio,$(USEMODULE))) - USEMODULE += stdio_uart - endif endif ifneq (,$(filter posix_sockets,$(USEMODULE))) @@ -453,55 +450,12 @@ ifneq (,$(filter posix_sockets,$(USEMODULE))) USEMODULE += xtimer endif -ifneq (,$(filter stdio_cdc_acm,$(USEMODULE))) - USEMODULE += usbus_cdc_acm - USEMODULE += isrpipe -endif - -ifneq (,$(filter stdio_rtt,$(USEMODULE))) - USEMODULE += xtimer -endif - ifneq (,$(filter shell,$(USEMODULE))) USEMODULE += stdin endif -ifneq (,$(filter stdio_ethos,$(USEMODULE))) - USEMODULE += ethos - USEMODULE += stdin - USEMODULE += stdio_uart -endif - -ifneq (,$(filter stdin,$(USEMODULE))) - ifneq (,$(filter stdio_uart,$(USEMODULE))) - USEMODULE += stdio_uart_rx - endif -endif - -ifneq (,$(filter stdio_uart_rx,$(USEMODULE))) - USEMODULE += isrpipe - USEMODULE += stdio_uart -endif - -ifneq (,$(filter stdio_uart,$(USEMODULE))) - FEATURES_REQUIRED += periph_uart -endif - -ifneq (,$(filter stdio_cdc_acm stdio_null stdio_uart slipdev_stdio,$(USEMODULE))) - # stdio_rtt cannot be used when another STDIO is loaded - DISABLE_MODULE += stdio_rtt -endif - -ifneq (,$(filter stdio_rtt stdio_null stdio_uart slipdev_stdio,$(USEMODULE))) - # stdio_cdc_acm cannot be used when another STDIO is loaded - DISABLE_MODULE += stdio_cdc_acm -endif - -ifeq (,$(filter stdio_cdc_acm,$(USEMODULE))) - # The arduino bootloader feature cannot be used if the stdio_cdc_acm module - # is not used - FEATURES_BLACKLIST += bootloader_arduino -endif +# Include all stdio_% dependencies after all USEMODULE += stdio_% +include $(RIOTBASE)/makefiles/stdio.inc.mk ifneq (,$(filter isrpipe,$(USEMODULE))) USEMODULE += tsrb diff --git a/makefiles/stdio.inc.mk b/makefiles/stdio.inc.mk new file mode 100644 index 0000000000..8048e0e255 --- /dev/null +++ b/makefiles/stdio.inc.mk @@ -0,0 +1,64 @@ +STDIO_MODULES = \ + slipdev_stdio \ + stdio_cdc_acm \ + stdio_ethos \ + stdio_null \ + stdio_rtt \ + stdio_uart \ + # + +# Since USEMODULE and DEFAULT_MODULEs are recursively expanded we need to +# disable DEFAULT_MODULEs before any of there dependencies are evaluated, +# otherwise the disabled MODULE will be in USEMODULE (triggering) its +# dependencies, and then removed but leaving its dependencies +ifneq (,$(filter $(filter-out stdio_rtt,$(STDIO_MODULES)),$(USEMODULE))) + # stdio_rtt cannot be used when another STDIO is loaded + DISABLE_MODULE += stdio_rtt +endif + +ifneq (,$(filter $(filter-out stdio_cdc_acm,$(STDIO_MODULES)),$(USEMODULE))) + # stdio_cdc_acm cannot be used when another STDIO is loaded + DISABLE_MODULE += stdio_cdc_acm +endif + +ifneq (,$(filter newlib,$(USEMODULE))) + ifeq (,$(filter $(STDIO_MODULES),$(USEMODULE))) + USEMODULE += stdio_uart + endif +endif + +ifneq (,$(filter stdio_cdc_acm,$(USEMODULE))) + USEMODULE += usbus_cdc_acm + USEMODULE += isrpipe +endif + +ifneq (,$(filter stdio_rtt,$(USEMODULE))) + USEMODULE += xtimer +endif + +ifneq (,$(filter stdio_ethos,$(USEMODULE))) + USEMODULE += ethos + USEMODULE += stdin + USEMODULE += stdio_uart +endif + +ifneq (,$(filter stdin,$(USEMODULE))) + ifneq (,$(filter stdio_uart,$(USEMODULE))) + USEMODULE += stdio_uart_rx + endif +endif + +ifneq (,$(filter stdio_uart_rx,$(USEMODULE))) + USEMODULE += isrpipe + USEMODULE += stdio_uart +endif + +ifneq (,$(filter stdio_uart,$(USEMODULE))) + FEATURES_REQUIRED += periph_uart +endif + +ifeq (,$(filter stdio_cdc_acm,$(USEMODULE))) + # The arduino bootloader feature cannot be used if the stdio_cdc_acm module + # is not used + FEATURES_BLACKLIST += bootloader_arduino +endif