Following my previous post where I described what I was looking for in a build system, here I take a look at GNU make, and why I'm not using it.
The first build system I learned, just as I was learning C.
If care (and work and time) is taken, it really is possible to do a lot with it.
For example, dependency management can be eased by cooperating with gcc , but you will have to regenerate the dependency map from time to time.
Portability wise, make is probably the first tool to be ported to a new platform after gcc, but sadly, with some small variations in make's syntax that compromise portability (GNU make vs BSD make vs microsoft make ...). Also, since your are expressing your project using rules and targets defined by native commands you also need to take great care to maintain your makefile relatively portable.
Make would meet most of my requirements for a build system, at the expense of my time, spent crafting clever makefiles and later debugging them.
Had these problems not existed, I would probably not be looking for an alternative in the first place.