This is much cleaner. I'm unsure of the original motivations, perhaps I just wanted to have all source files next to each other. There is no functional issue with the build directory, though.
Require glib-genmarshal (a part of the standard GTK+ distribution).