4 ms·
Make has its place as a build tool for large C codebases. People sometimes treat it as a generic “project specific job runner”, which it’s not a good fit for.
by danw1979 1y ago
Make has its place as a build tool for large C codebases.
People sometimes treat it as a generic “project specific job runner”, which it’s not a good fit for. Even simple conditionals are difficult.
I’ve seen several well-intentioned attempts at wrapping Terraform with it, for example, which have ended terribly.
- creata 1y agoIs there a good generic job runner? Edit: Sorry, it looks like I totally misunderstood what you meant by "job runner".
- homebrewer 1y agoSure, a bash script. People keep writing and using other alternatives (like just), which provide a very slight improvement on pure shell at the cost of installing yet another tool everywhere. I stick with bash, write every task as a separate function, and multiplex between them with a case statement (which supports globs et al. and is very readable).
- EPWN3D 1y agoYears ago, I discovered git-rev-parse's option parsing, and it completely removed any excuse I had not to write my own personal bash scripts to a professional standard. Now when I need a tool, I can knock it out in bash with proper option parsing, usage, etc. bash is awful on a lot of fronts, but if you're writing code that's primarily calling a bunch of tools and mucking with their output, it's still the best thing out there I've found just due to piping syntax.
- dakom 1y agoTaskfile and Justfile are pretty solid.
- monkeyelite 1y agoIt’s not a generic job runner. It’s a generic way to transform linear shell scripts into declarative dependencies. It’s a general tool for the shell.
- raydev 1y ago> Make has its place as a build tool for large C codebases. This is no longer true imo. More robust and well-defined build systems have been created in the last 2 decades. Time to update.