play with make
1) the VPATH variable
In make world, the VPATH variable guide you where to find the .c/.o file
2) the $^
$^ is a very important symbol in make, which is extented to the full path of the target file.
3) test:test.c
target:depedency depency, Or if test.c changed make will not