HASFEATURE = $(findstring $(1), $(.FEATURES))
REQERROR   = Required feature "$(strip $(1))" not supported by $(MAKE)
REQUIRE    = $(and $(or $(HASFEATURE), $(error $(REQERROR))),)

$(call REQUIRE, else-if)
$(call REQUIRE, order-only)
$(call REQUIRE, target-specific)

HASFEATURE = $(filter $(1), $(.FEATURES))
REQERROR   = Required feature "$(strip $(1))" not supported by $(MAKE)
REQUIRE    = $(and $(or $(HASFEATURE), $(error $(REQERROR))),)

$(call REQUIRE, else-if)
$(call REQUIRE, order-only)
$(call REQUIRE, target-specific)

Use $(filter) instead of $(findstring) to query GNU Make $(.FEATURES)
Use $(filter) instead of $(findstring) to query GNU Make $(.FEATURES)

The findstring macro looks for a substring anywhere in a string, whereas
filter looks for whole, whitespace-separated words.

Calling $(findstring, else-i, else-if) returns a positive match, which
is definitely not the desired behaviour for checking the $(.FEATURES)
list.
