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