And I rewrote most all of it in 160 or so lines of Makefile, with several additional features (casual examiners should notice I added a few variables to the Makefile to do wicked things). The output of gyp -- Makefiles supposedly built for my platform -- is several times longer than that, never mind the actual gyp files themselves.
Whatever benefits gyp might have, it doesn't seem to be helping Node.js.
I must dissent, what I think is cute is that after we abandoned porting Node.js to Autotools, we instead settled for converting libuv. I mean, seriously?
The ability to link dynamic libraries is, of course, nothing new to Node.js, and I use it because it drops by build time down to seconds.
Likewise, I wrote that Makefile because I was solving some very real engineering goals that Node.js ignores. (js2c.sh, on the other hand, was done purely to prove a cute point.)
I'm no fan of the current state of affairs either. Build systems still seem to be in the state that revision control systems were a decade ago. In particular, Makefiles are not by themselves a build system because they're not declarative at that the required level of abstraction.
But I haven't seen anything better.
The fact that a general purpose build system needs to be written in python is a travesty, and defining your build data with it completely violates the rule of least power.
Austin.