A pattern rule is indicated by a single
% character in the target. The
% matches a non-empty string called the stem. The stem is then substituted for every
% that appears in the prerequisite list.
For example, this rule:
%.o: %.c $(CC) $(CFLAGS) -c $< -o $@
Will match any target ending in
.o. If the target was
foo.o, the stem would be
foo and it would compile
foo.o. Targets and prerequisites can be accessed using automatic variables.