this post was submitted on 20 Apr 2025
149 points (95.2% liked)
Programmer Humor
22657 readers
2019 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Make was created for building code, but many people are also using it as a command runner.
Just addresses that use case, but it's not a replacement for either of those makes.
If you want a really advanced build system there's shake, which can deal with things like building things that generates dependency information for things that build things. In a nutshell: It's strictly more powerful than make because (a single invocation of) make operates on a fixed dependency graph while shake can discover dependencies as it goes.
Mostly though you should use whatever comes with the language you're using, and if you're doing something simple use make. That includes "link a multi-language project where the components are generated by language-specific systems". It notably doesn't include multi-stage compiler builds. GHC switched from recursive make, which is a bad idea, to non-recursive make, which was... arcane, but at least you didn't have to
make clean
to get a correct build, to shake. Here's the build system it's a whole project to itself.