I don't blame you for not using Make (It's nice and easy only in cases that are too basic for real-world projects. Once you start supporting out-of-tree builds, configurable components, portability, etc. it grows into something tricky and fragile).
However, I'd suggest using another existing build system rather than inventing a millionth-first one. It's easy to make 95% sufficient build system, but the effort to reach 100% is asymptotic.
In one project I refused to touch autotools, and hand-crafted my own ./configure script. It seemed simple at first, and ended up being a time sink. I've been getting bizarre bug reports about broken platforms where /dev/null doesn't exist, grep doesn't understand basic flags, /tmp/ is read-only (why do you hurt yourself like that!?). If you make your own build system, all of it it becomes your problem that you'll reinvent it like everyone before you.
The only problem is that no matter which build system you choose, you'll find both people who think it's the only right choice, and people who insist it's total garbage and they will never touch it.
However, I'd suggest using another existing build system rather than inventing a millionth-first one. It's easy to make 95% sufficient build system, but the effort to reach 100% is asymptotic.
In one project I refused to touch autotools, and hand-crafted my own ./configure script. It seemed simple at first, and ended up being a time sink. I've been getting bizarre bug reports about broken platforms where /dev/null doesn't exist, grep doesn't understand basic flags, /tmp/ is read-only (why do you hurt yourself like that!?). If you make your own build system, all of it it becomes your problem that you'll reinvent it like everyone before you.
The only problem is that no matter which build system you choose, you'll find both people who think it's the only right choice, and people who insist it's total garbage and they will never touch it.