>>997249 (OP)
make - just werks. Clean and simple for simple cases, but starts getting ugly fast. If you started using '$(call ..)', you should have abandoned make long ago
automake - free software equivalent of any bespoke corporate build system. Supports every case you might need, but learning correct ritual takes more time and pain than doing it from scratch. If you do everything right - it works better than you could expect; if you do single mistake - you go into world of frustrated suffering.
cmake - fuck it. Uglier than make for simple cases, no less ugly on complex, as bloated as automake. No reason for it to exist.