diff --git a/Makefile.buildtests b/Makefile.buildtests index 1c161ef8ef43b3656b2abe70f9960bb5d3618e02..fde12f6974839d70f6cdae6ca1ca524189f2259b 100644 --- a/Makefile.buildtests +++ b/Makefile.buildtests @@ -169,8 +169,16 @@ info-build: @echo 'ELFFILE: $(ELFFILE)' @echo 'HEXFILE: $(HEXFILE)' @echo '' - @echo 'FEATURES_REQUIRED: $(sort $(FEATURES_REQUIRED))' - @echo 'FEATURES_PROVIDED: $(sort $(FEATURES_PROVIDED))' + @echo 'FEATURES_REQUIRED (excl. optional features):' + @echo ' $(or $(sort $(filter-out $(FEATURES_OPTIONAL), $(FEATURES_REQUIRED))), -none-)' + @echo 'FEATURES_OPTIONAL (strictly "nice to have"):' + @echo ' $(or $(sort $(FEATURES_OPTIONAL)), -none-)' + @echo 'FEATURES_PROVIDED (by the board):' + @echo ' $(or $(sort $(FEATURES_PROVIDED)), -none-)' + @echo 'FEATURES_MISSING (incl. optional features):' + @echo ' $(or $(sort $(filter-out $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))), -none-)' + @echo 'FEATURES_MISSING (only non-optional features):' + @echo ' $(or $(sort $(filter-out $(FEATURES_OPTIONAL) $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))), -none-)' @echo '' @echo 'CC: $(CC)' @echo -e 'CFLAGS:$(patsubst %, \n\t%, $(CFLAGS))' @@ -215,6 +223,8 @@ info-features-missing: info-boards-features-missing: @for f in $(BOARDS_FEATURES_MISSING); do echo $${f}; done | column -t +FEATURES_REQUIRED += $(FEATURES_OPTIONAL) + ifneq (, $(filter info-boards-supported info-boards-features-missing info-build, $(MAKECMDGOALS))) FEATURES_PROVIDED_BAK := $(FEATURES_PROVIDED) @@ -224,8 +234,11 @@ ifneq (, $(filter info-boards-supported info-boards-features-missing info-build, FEATURES_MISSING := $$(filter-out $$(FEATURES_PROVIDED), $$(FEATURES_REQUIRED)) ifneq (, $${FEATURES_MISSING}) - BOARDS_WITH_MISSING_FEATURES += ${1} BOARDS_FEATURES_MISSING += "${1} $${FEATURES_MISSING}" + + ifneq (, $$(filter-out $$(FEATURES_OPTIONAL), $$(FEATURES_MISSING))) + BOARDS_WITH_MISSING_FEATURES += ${1} + endif endif endef diff --git a/Makefile.include b/Makefile.include index 5daf23058cf419eedd078771f1dda23a9637a32a..16a34ee622ce02601b7f89b879ca9988bccf02de 100644 --- a/Makefile.include +++ b/Makefile.include @@ -219,9 +219,9 @@ ifneq (, $(filter all, $(if $(MAKECMDGOALS), $(MAKECMDGOALS), all))) endif # Test if all feature requirements were met by the selected board. - ifneq (, $(filter-out $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))) + ifneq (, $(filter-out $(FEATURES_PROVIDED) $(FEATURES_OPTIONAL), $(FEATURES_REQUIRED))) $(shell $(COLOR_ECHO) "$(COLOR_RED)There are unsatisfied feature requirements:$(COLOR_RESET)"\ - "$(filter-out $(FEATURES_PROVIDED), $(FEATURES_REQUIRED))" 1>&2) + "$(sort $(filter-out $(FEATURES_PROVIDED) $(FEATURES_OPTIONAL), $(FEATURES_REQUIRED)))" 1>&2) EXPECT_ERRORS := 1 endif diff --git a/examples/default/Makefile b/examples/default/Makefile index 33746afc9ca7ece17553d9ac86db302c8a4d1b1b..fa481bfd49950988f4cf65490f5f0c89b04c3547 100644 --- a/examples/default/Makefile +++ b/examples/default/Makefile @@ -36,6 +36,8 @@ USEMODULE += ps USEMODULE += vtimer USEMODULE += defaulttransceiver +FEATURES_OPTIONAL += transceiver + ifneq (,$(filter msb-430,$(BOARD))) USEMODULE += sht11 endif