It is very hard to write a program at once that is larger than 10 lines and
syntactically correct.
After make starts the compiler, the compiler will emit some
error messages and terminate without generating an object file.
Make can detect the compilation failure by looking at the exit
status of the compiler.
Whenever a program returns a non-zero exit code, make assumes
that it failed and will not fork other compilation phases
.