@sjolsen yeah, having make detect dependencies on C headers seems like such a hack...
I think Make really shines in case of deep static dependency trees. Arguably you could also use ninja for that, but make has the advantage of having variables that let you avoid repetition.