I'm pretty confused about makefiles. From what I understand, makefiles can quicken the compilation process by ordering the dependencies in a fashion where the entire program doesn't need to get compiled every time a single of its dependencies is altered.

However, that's as far as my knowledge goes. I know how it basically works but I'm not sure how this concept is implemented in the actual makefile. Could someone please explain the process in laymans terms? I've perused google for information but only find myself more confused.

Thanks!