Comment by nrclark

7 months ago

(not the parent)

Make is - at its core - a tool for expressing and running short shell-scripts ("recipes", in Make parlance) with optional dependency relationships between each other.

Why would I want to spread out my build logic across a bunch of shell scripts that I have to stitch together, when Make is a nicely integrated solution to this exact problem?

Any modern attempts to do this better than make? I often write small “infra” bash scripts in my projects, maybe I could use a tool like that.

  • I haven’t used them yet, but I keep seeing people touting alternatives, and in particular “just”: https://github.com/casey/just

    This is primarily aimed at a “task runner” replacement rather than a “compilation with automatic file timestamp comparison replacement”

    Others I stumbled across: Taskfile Mage XcFile

    None of them have tempted me enough to move away from a set of bash scripts or scripts written in the language of my repo (yet).

  • `Just` is also popular in this space, but tbh I think Make is a better choice.

    Make is included in most Linux distros, including the ones available for WSL. It's also included with Apple's developer tools. It's been used for decades by millions of people, and is very mature.

    If you use it in a simple way, Make is almost identical to `Just`. And when/if you want Make's powerful features, they're there and ready for you. Make's documentation is also exceptional.

    I've used a bunch of these kinds of tools over the years, and I've never found one that I like more than Make.