diff --git a/Makefile.dep b/Makefile.dep index 364fb05545647a76c0e0205cc7a6057f72f980ed..302f028543c2bff14bc13d270eca6d8e6f220f4b 100644 --- a/Makefile.dep +++ b/Makefile.dep @@ -698,6 +698,15 @@ endif # include package dependencies -include $(USEPKG:%=$(RIOTPKG)/%/Makefile.dep) +# remove required features from optional features +FEATURES_OPTIONAL := $(filter-out $(FEATURES_REQUIRED),$(FEATURES_OPTIONAL)) + +# add all optional but provided features to the list of used features +FEATURES_USED := $(sort $(FEATURES_REQUIRED) $(filter $(FEATURES_OPTIONAL),$(FEATURES_PROVIDED))) + +# all periph features correspond to a periph submodule +USEMODULE += $(filter periph_%,$(FEATURES_USED)) + # recursively catch transitive dependencies USEMODULE := $(sort $(USEMODULE)) USEPKG := $(sort $(USEPKG)) diff --git a/makefiles/modules.inc.mk b/makefiles/modules.inc.mk index 3b9744d0422b11b9c55f9bd9ad547bcf7df497c9..ebaa211407340a06586fb8d54d4b8f72491b5d4a 100644 --- a/makefiles/modules.inc.mk +++ b/makefiles/modules.inc.mk @@ -1,5 +1,3 @@ -USEMODULE := $(filter-out $(filter-out $(FEATURES_PROVIDED), $(FEATURES_OPTIONAL)), $(sort $(USEMODULE))) - ED = $(addprefix FEATURE_,$(sort $(filter $(FEATURES_PROVIDED), $(FEATURES_REQUIRED)))) ED += $(addprefix MODULE_,$(sort $(USEMODULE) $(USEPKG))) EXTDEFINES = $(addprefix -D,$(shell echo '$(ED)' | tr 'a-z-' 'A-Z_'))