Man, designing and implementing a complex build system is pretty hard. That's why I just used the one from Crystal Space SDK
I had to edit a lot of the Jam files (Jam is a Make-like build system from Perforce software that extends Make with scripting and logic and variables and all that fun stuff) to make the system compatible with the Microsoft C/C++ compiler (CL). Crazy you say? Crazy like a fox! But no, I have to do this because most of the code that will be included wit the build system is not standard and there is too much of it to port to compile with GCC or similar compilers.
Currently listening to Limp Bizkit's new album `Results may vary' (I think thats the name)