$@: target, since it looks like a target. $<: the 1st prereq, since < points to the left. $^: all prereqs, since ^ looks like an "upward grouping flower bracket". $?: prereqs that are newer than the target, since ? is stuff you don't know / haven't looked at. $*: target with suffix deleted , since we generally grep for *.c|h|, we want the * part of $@. Alternatively, * is also like a target, but only the bull's eye with the extra stuff like the suffix stripped out.