I don't mind Make for small projects, but it can be a bit of a nightmare for large ones - there are some very unwieldy Makefiles out there. It gets more complicated when you want to have several libraries and/or executables in a project, each of which link against different external libraries. I've always found CMake makes this much easier IMO, and while the language is a bit janky, it does the job.
Make is kind of write only. I have this library of mine for image and graphics processing that I wrote and which I'm rolling through years. In the beginning I wrote in all this functionality I thought I needed, basically an architecture of project and it does what I need - I can make a static or dynamic library, it works on Windows, MacOS, and Linux, it has "modules" which can be overriden based on if there's a certain subdirectory within a module with OS/Platform name (basically a compile time multiplatform specialisation) and several other things.. It works and is rock solid. However, if you've asked me now what's in there and why and how... Just by glancing at that spaghetti code in there I know in general what's where, but damnit if I would be brave enough to make significant changes to it. It works though and it works great. I must also point out that I use gcc (different versions) and clang here and there on all three platforms and I change compiler/tools in the environment itself, not within Makefile.
If I would to do it again (I'm not active developer anymore though - it's more for personal use now) I would do it again with make. There's certain straightforwardness to it when writing it, and from my experience there's zero to almost none maintenance, but ymmv of course. I would probably look into CMake if I were using vastly different compiler tools (configuration-wise), but I'm not.