Ядро linux (и различные другие проекты, включая git) имеет очень приятные make файлы, которые скрывают гигантские вызовы cc в красивые небольшие сокращения.
Например:
gcc -O2 -o cool.o cool.c -llib
gcc -O2 -o neat.o neat.c -llib
станет:
CC cool.c
CC neat.c
Что действительно приятно, если у вас есть проект с большим количеством файлов и длинными флагами компилятора. Я помню, что это связано с подавлением вывода по умолчанию и созданием пользовательского. Как вы это делаете?