GNU Make's documentation is actually excellent. It's dense, but that is only because there is a lot to cover.
When I was learning C++ a bit ago, I tried to write basic `Makefile` files, but switched to CMake. There is the disadvantage of practically every Unix-like OS having `make`, but not always CMake, but I found the trade off worth it for one-off projects
I am partial to Rust over C/C++ here, but I do like Rust’s method of a simple `cargo build`, but with the ability to write a program (`build.rs`) for non-Rust parts.