I wouldn't say make is perfect, but it's different from this kind of tool. Make is more geared towards file creation that depends on complex pipelines. It's not a task runner. In fact, you have to force it to be a task runner with .PHONY if you really need it to.