GNU Make
Ranked 2 of 17 build systems by recommenders
Ubiquitous, simple build and script runner, widely recommended for small projects and for avoiding extra dependencies; main caveat is it struggles as projects grow large.
Ubiquitous, simple build and script runner, widely recommended for small projects and for avoiding extra dependencies; main caveat is it struggles as projects grow large.
118 people gave an opinion
- recommend it
- 76
- criticize it
- 42
- approval share
- 64%
Recommended in 12 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 76 people recommend itNeeds 10 or more, met.
- 1.8 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 12 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Stable, ubiquitous, rarely needs changes
“Make is ubiquitous, cross-platform, the targets are essentially snippets of shell with some additional features/syntax added on top”
Comment from 28 Jan 2026 in “Make.ts” “I have written once a set of GNU Makefiles, according to its manual, around 1998, and I have never had to change them since then”
Comment from 10 Mar 2026 in “Practical Guide to Bare Metal C++” “once the Makefile is written I'm not going to be constantly adding and removing packages on a frequent basis”
Comment from 18 Nov 2025 in “Giving C a superpower: custom header file (safe_c.h)” - Comment from 28 Jul 2026 in “Show HN: MKPM – GNU Make Package Manager”
- Comment from 14 Aug 2026 in “Choose Boring Technology (2015)”
Lighter than CMake, no extra dependency
“you can use a makefile and distribution-provided dependencies, or vendored dependencies, and you don't need cmake”
Comment from 25 Nov 2025 in “APT Rust requirement raises questions” “It's true for any C/C++ project which bothers to write 10 lines of GNU `make` code.”
Comment from 15 Nov 2025 in “Go's Sweet 16” “it is portable already and does not add yet another host dependency on everybody”
Comment from 1 Oct 2026 in “Show HN: Ledge.sh – Runnable Markdown Notes” - Comment from 1 Feb 2026 in “C++ Minesweeper Implementation”
Glue for scripts and tooling
“IMHO, Make makes a decent glue system at smaller organizations lacking a compiler/build/tooling team.”
Comment from 17 Dec 2025 in “Introduction to Software Development Tooling (2024)” “I just finished writing a nicely recursive set of gMake for cloud a pipeline”
Comment from 12 Dec 2025 in “My productivity app is a never-ending .txt file (2020)” “treat the FPGA tools as command line tools that are invoked by running make”
Comment from 23 Dec 2025 in “FPGAs Need a New Future” - Comment from 14 Dec 2025 in ““You should never build a CMS””
Same build and test commands everywhere
“I recommend just putting a Makefile in the repo and have that have CI targets”
Comment from 14 Jan 2026 in “I Hate GitHub Actions with Passion” “It's wonderful to have the same build, test, release commands in all projects”
Comment from 30 Mar 2026 in “ninja: a small build system with a focus on speed” “it's sure nice to just be able to type `make` and see a pdf pop out”
Comment from 18 Aug 2026 in “How I Under-Engineered My Book”
What people warn about
Each mark is one comment
Struggles as projects grow large
“For toy projects good old Make is fine...but at some point a project gets large enough that you need something more powerful”
Comment from 9 Apr 2026 in “I built a Cargo-like build tool for C/C++” “it's great for smaller ones, but for the huge ones, there are much better runners available”
Comment from 30 Sep 2026 in “Recursive `make` and `-j`” Unfamiliar, unorthodox syntax
“Make suffers from unfamiliar and somewhat unorthodox syntax, and inconsistent language design.”
Comment from 8 Jun 2026 in “OCaml Onboarding: Introduction to the Dune build system” “Make suffers from unfamiliar and somewhat unorthodox syntax, and inconsistent language design”
Comment from 8 Jun 2026 in “OCaml Onboarding: Introduction to the Dune build system” Breaks down at complex edge cases
“make and CMake work perfect right up until they don't and the last 2% cost you 98% of the time.”
Comment from 12 Dec 2025 in “The Tor Project is switching to Rust” “make and CMake work perfect right up until they don't and the last 2% cost you 98% of the time”
Comment from 12 Dec 2025 in “The Tor Project is switching to Rust” “fighting cmake/make/autoconf/configure/automake build spaghetti is not my idea of a good time”
Comment from 28 Dec 2025 in “Rust Errors Without Dependencies” Timestamp-based freshness checks are outdated
“We'd have been a lot further along if tools like make had ever adopted hashes for freshness checking rather than timestamps”
Comment from 19 Nov 2025 in “Reproducible C++ builds by logging Git hashes” “Make is timestamp based. That is a thoroughly out-of-date approach only suitable for a single computer.”
Comment from 26 Feb 2026 in “BuildKit: Docker's Hidden Gem That Can Build Almost Anything”
Other build systems people recommend
The four most recommended other build systems, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Bazel | 79 | 41 | 66% | 12 | 3 yrs3 owners | — |
| GNU MakeThis page | 76 | 42 | 64% | 12 | — | — |
| CMake | 58 | 93 | 38% | 12 | — | — |
| Apache Maven | 44 | 42 | 51% | 12 | — | — |
| Ninja build system | 37 | 10 | 79% | 11 | — | Approved |
What people said
40 of the 135 comments that mention it, newest first. Each links to the original comment.
“it is portable already and does not add yet another host dependency on everybody”
“it's great for smaller ones, but for the huge ones, there are much better runners available”
“Graph-based programming environments like make and Spring also free developers from having to worry about what order things have to be done in which can get really cumbersome”
“it's sure nice to just be able to type `make` and see a pdf pop out”
“bash, xargs, wget, make, etc are well-understood, well-maintained tools”
“One of those things that is useful both when you are working on the project and when you later return to it”
“Make has long been my go-to script runner and build tool, simple and ubiquitous”
“Make is sufficiently bad that everyone who has used it has considered writing a better way to do it.”
“Make suffers from unfamiliar and somewhat unorthodox syntax, and inconsistent language design”
“Make suffers from unfamiliar and somewhat unorthodox syntax, and inconsistent language design.”
“Anyone who's struggled over a complex Makefile wishes they had a more sane declarative language!”
“What started as a simple fix for the quirks of traditional build systems like make”
“GNU Make has a debugger. This alone makes it far superior to every other build tool I've ever seen.”
“For toy projects good old Make is fine...but at some point a project gets large enough that you need something more powerful”
“It's wonderful to have the same build, test, release commands in all projects”
“Works like a charm (and never messes up incremental builds by not rebuilding on a header-only change).”
“I have written once a set of GNU Makefiles, according to its manual, around 1998, and I have never had to change them since then”
“Make is timestamp based. That is a thoroughly out-of-date approach only suitable for a single computer.”
“Let me introduce you to a few of my friends: Make, Task, Dagu, Windmill, Rivet, Inngest”
“many of them lack some of the basic features that 'make' has had for half a century”
“I am pretty sure that GNU Make with Makefile is still lighter than CMake”
“Make is ubiquitous, cross-platform, the targets are essentially snippets of shell with some additional features/syntax added on top”
“using Make will allow for a less flaky CI experience, that doesn't break the next time the git hoster changes something”
“To me the Python code is more verbose and not as simple compared to the Makefile's target so it is less readable as well.”
“I recommend just putting a Makefile in the repo and have that have CI targets”
“They work great for simple tasks, but as a developer, I hated having my logic trapped in a GUI”
“Robust security against agent actions going haywire can be achieved via command runners like just or make”
“It is nice, but I am currently dropping all make/meson/cmake/etc based build systems”
“fighting cmake/make/autoconf/configure/automake build spaghetti is not my idea of a good time”
“treat the FPGA tools as command line tools that are invoked by running make”
“IMHO, Make makes a decent glue system at smaller organizations lacking a compiler/build/tooling team.”
“I don't want to .. but people keep using it because it's simpler than other build systems.”
“Having Make shell out to the real build system is a nice compromise.”
“make and CMake work perfect right up until they don't and the last 2% cost you 98% of the time.”
“make and CMake work perfect right up until they don't and the last 2% cost you 98% of the time”
“I just finished writing a nicely recursive set of gMake for cloud a pipeline”
“you can use a makefile and distribution-provided dependencies, or vendored dependencies, and you don't need cmake”
“We'd have been a lot further along if tools like make had ever adopted hashes for freshness checking rather than timestamps”
“once the Makefile is written I'm not going to be constantly adding and removing packages on a frequent basis”
“It's true for any C/C++ project which bothers to write 10 lines of GNU `make` code.”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.