Wow this is a flash in the past for me. Where I worked at in 2005 we shipped several Automotive Embedded software stacks. We had to support ~60-70 uC platforms with a combination of about ~50 different compilers. All kinds of different versions, sizes etc..<p>We had a Makefile project in place with about >10k LOC that was modular enough that after it was pre-processed we had a functioning Makefile environment which was fast and did all kinds of things. It worked and maintaining and debugging it was actually not too bad since Makefiles are just rules.<p>Ever since then I just kind of love Makefiles.
Some additional info here:
<a href="http://hackaday.com/2013/09/06/antares-one-bare-metal-build-system-to-rule-all-micocontrollers/" rel="nofollow">http://hackaday.com/2013/09/06/antares-one-bare-metal-build-...</a>