> I think static pattern rules without recipes are rare (at least I've > never seen or used one)
I could quickly lay my hands on what looks like a handful: ./subrules.make:384:$(SOFTWARE)$(PROJPATH)/%: %; ./subrules.make:392:$(FLEX_GEN_CPP): %.gen.cpp: generated/regenerated.% ./subrules.make:393:$(FLEX_GEN_H): %.gen.h: generated/regenerated.% ./subrules.make:530:clean clobber: %: %.generated ./trules.make:642:$(ORPHAN_OBJS): $(TARGET_DIR)/%.o: remove_orphans.% The first one looks to be trying to persuade Make about the equivalence of a certain sort of relative path and an absolute one. The rest seem to be more directly code to tell Make about side-effects - build this first and then maybe what you wanted will have magically appeared, or disappeared.