MUSHROOM := $(shell seq 1 100) FIZZ := $(shell seq 0 3 100) BUZZ := $(shell seq 0 5 100) BADGER := $(filter-out $(FIZZ) $(BUZZ), $(MUSHROOM)) SNAKE := $(filter $(FIZZ), $(BUZZ)) FIZZ := $(filter-out $(SNAKE), $(FIZZ)) BUZZ := $(filter-out $(SNAKE), $(BUZZ)) .PHONY: $(MUSHROOM) default default: $(MUSHROOM) $(BADGER) : % : ; @echo $@ $(FIZZ) : % : ; @echo fizz $(BUZZ) : % : ; @echo buzz $(SNAKE) : % : ; @echo fuzzbuzz