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.