Programming in c
Intro to C Programming
cprogramming.com is a good website to start learning about programming with the C language. There is a tutorial to start with that covers all the basics.
Then they cover Makefiles too since Make is a very widely used build tool for the C language.
The GNU C compiler is a large and complex program unto itself. There are several hundred options for optimization alone!