Make is not language agnostic; it has implicit rules for compiling C.
it also has implicit rules for other languages, why would that make it non-agnostic?