$@: object file
$^: all related files
$<: the first related files
$?: files which is newer than object file