The linux kernel (and various other projects including git) have very nice makefiles that hide the giant cc calls into nice little acronyms.
For example:
You can prepend @ to calls in the makefile targets.
E.g.:
%.o: %.c @$(CC) $(CFLAGS) -c -o $@ $< @echo "CC $<"
For a much more complicated makefile, you could use a Python script to capture the output in realtime and process it however you like, and then print them in realtime: example.