You define an implicit rule by writing a pattern rule. A pattern rule looks like an ordinary rule, except that its target contains
the character ‘%’ (exactly one of them). The target is considered a pattern for matching file
names; the ‘%’ can match any non-empty substring, while other characters match only
themselves. The dependencies likewise use ‘%’ to show how their names relate to the target name. Thus, a pattern rule ‘%.o : %.c’ says how to make any file ‘stem.o’ from another file ‘stem.c’.